2017-02-24 100 views
4

对于Laravel我很新,说实话 - 这是一个很棒的框架。然而,我对一些嵌套资源有些困惑 - 包括CRUD。嵌套的资源:缺少必需的参数(laravel)

对于路线我使用

Route::resource('startups','StartupsController'); 
Route::resource('startups.usecases','UsecasesController'); 

PHP工匠路线:列表

|  | GET|HEAD | admin/startups         | admin.startups.index   | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | POST  | admin/startups         | admin.startups.store   | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | GET|HEAD | admin/startups/create       | admin.startups.create   | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | DELETE | admin/startups/{startup}       | admin.startups.destroy   | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | GET|HEAD | admin/startups/{startup}       | admin.startups.show    | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | PUT|PATCH | admin/startups/{startup}       | admin.startups.update   | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | GET|HEAD | admin/startups/{startup}/edit     | admin.startups.edit    | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | GET|HEAD | admin/startups/{startup}/usecases    | admin.startups.usecases.index | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | POST  | admin/startups/{startup}/usecases    | admin.startups.usecases.store | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | GET|HEAD | admin/startups/{startup}/usecases/create   | admin.startups.usecases.create | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | DELETE | admin/startups/{startup}/usecases/{usecase}  | admin.startups.usecases.destroy | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | GET|HEAD | admin/startups/{startup}/usecases/{usecase}  | admin.startups.usecases.show | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | PUT|PATCH | admin/startups/{startup}/usecases/{usecase}  | admin.startups.usecases.update | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 
|  | GET|HEAD | admin/startups/{startup}/usecases/{usecase}/edit | admin.startups.usecases.edit | App\Http\Controllers\[email protected]        | web,admin,auth:admin | 

父,这里所说的 “创业公司”,一切都很好,我可以CRUD一切就好了。

对于孩子来说,在这里称为“usecases”,索引,创建和存储都很好。当我尝试添加链接到编辑,删除或在我的模板中显示时,我开始得到:缺少[Route:admin.startups.usecases.destroy] [URI:admin/startups/{startup}/usecases的必需参数/ {用例}]。

在我的索引刀片文件的链接:

<li><a href="{{ route('admin.startups.usecases.show',$startup->id, $usecase->id) }}">Show</a></li> 

返回该错误。

在我UsecasesController

public function show($startup_id, $usecase_id) 
    { 
     $startups = $startup_id; 
     $usecase = Usecase::find($usecase_id); 
     return view('admin.startups.usecases.show') 
     ->with('usecase', $usecase) 
     ->with('startups', $startups); 
    } 

TLDR:我可以访问和家长, “初创” CRUD一切。我可以为孩子创建和存储,但不能编辑,显示或删除 - “用例”。

您的帮助表示赞赏。

回答

2

你需要传递参数数组:

route('admin.startups.usecases.show', [$startup->id, $usecase->id]) 

而且show()方法是这样的:

public function show($startup, $usecase) 
{ 
    .... 
+1

一个数组中!啊......谢谢。 –