我正在接受
抱歉,找不到您要查找的页面。
在Laravel 5.5上。我确信我错过了很小的东西。但不确定它是什么,因为我是一个学习者。请参阅以下内容:
ROUTE
Auth::routes();
Route::get('/curriculum-sections','CurriculumsectionsController@index')->name('curriculum-sections');
Route::resource('/curriculum-sections','CurriculumsectionsController');
CONTROLLER
public function show(Curriculumsection $curriculumsection)
{
//
$curriculum = Curriculum::findOrFail($curriculumsection->id);
return view('curriculum-sections.show', ['curriculum'=>$curriculum]);
}
我还确保该页面存在于views文件夹中。在排查问题时,我也做了php artisan route:list
,这就是我得到的
编辑: 我正在访问错误:
答案 0 :(得分:1)
问题是您的路线为模型id
定义了Curriculumsection
。您正在使用模型绑定,它将自动查询Curriculumsection::findOrFail(route_id)
(在您的情况下,route_id为1)。然后,您使用相同的id
来查询模型Curriculum
,并使用->findOrFail(route_id)
。
因此,为了使此路由返回除404之外的任何内容,您必须在数据库中记录Curriculumsection
的id为1且记录为Curriculum
且ID为1。
我不确定您的数据库是如何设置的,或者这两个模型是如何相互关联的,但绝对不是相同的id
(否则,为什么不将所有数据放在同一个表中)。
这样的事情会更有意义(直接绑定Curriculum
模型):
public function show(Curriculum $curriculum)
{
return view('curriculum-sections.show', ['curriculum'=>$curriculum]);
}
这会将Curriculum
模型绑定到路由,并自动获取传入id
的模型。
或者类似于您的用例,但它假设您在curriculum()
模型上有一个名为Curriculumsection
的工作关系:
public function show(Curriculumsection $curriculumsection)
{
$curriculum = $curriculumsection->curriculum;
return view('curriculum-sections.show', ['curriculum'=>$curriculum]);
}
答案 1 :(得分:0)
我不认为你需要第一个获取路线。您只需定义Route :: resource(...)即可。 Laravel处理不同的请求。