2017-02-24 10 views
4

私はララベルにとって新しく正直です。これは素晴らしいフレームワークです。しかし、私はCRUDを含むいくつかのネストされたリソースについてちょっと混乱しています。ルートのネストされたリソース:必要なパラメータがありません(ラベール)

は私が

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することができます。

子供の場合、ここでは "ユースケース"と呼ばれ、インデックス、作成、およびストアは正常です。私がテンプレートの編集、削除、または表示へのリンクを追加しようとすると、次のようになります:[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

あなたは配列としてパラメータを渡す必要があります。

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

配列:

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

そしてshow()方法は次のようになります!ああ...ありがとう。 –

関連する問題