2016-12-15 4 views
0

新人質問について謝罪したいと思います。Laravel redirect()に正しいURLが生成されていません

私はLaravelでシンプルなCRUDコントローラを作成しています。

私のメソッドを作成するには、次のとおりです。

public function create(Request $request) 
{ 
    $dummy = new Dummy(); 
    $dummy->title = $request->title; 
    $dummy->content = $request->dummy_content; 
    $dummy->created_at = new \DateTime(); 
    $dummy->updated_at = new \DateTime(); 
    $dummy->save(); 

    return redirect() 
     ->route('index/view/', ['id' => $dummy->id]) 
     ->with('message', 'Dummy created successfully'); 
} 

私の見解方法:

public function view($id) 
{ 

    $dummy = Dummy::find($id); 

    return view('index/view', [ 
     'dummy' => $dummy 
    ]); 
} 

私の対応路線:

Route::get('index/view/{id}', '[email protected]'); 
Route::post('index/create', '[email protected]'); 

と私形式:

<form action="create" method="post"> 
    {{ csrf_field() }} 
    <div class="form-group"> 
     <label for="title">Title</label> 
     <input type="text" name="title" class="form-control"> 
    </div> 
    <div class="form-group"> 
     <label for="content">Content</label> 
     <textarea name="dummy_content" cols="80" rows="5" class="form-control"></textarea> 
    </div> 
    <button type="submit" class="btn btn-default btn-sm">Submit</button> 
</form> 
[/インデックス/ビュー] ルート定義されていない:314 UrlGenerator.phpラインで

InvalidArgumentException:私は私のフォームを送信するとき

は、私は次の例外を取得します。

私はかなりの時間ここに立ち往生していますが、私はまだ私のルートを適切に生成していない理由を理解できません。

私には何が欠けていますか?

答えて

0

代わりに、コントローラを呼び出す必要があるときにルートを呼び出そうとしています。あなたのルートで

return Redirect::route('route_alias', ['id' => $id])->with($stuff); 

::これはトリックも

return redirect()->action('[email protected]', ['id' => $id])->with($stuff); 

を行います、私はあなたがあなたのコントローラで

のような何かができるので、あなたが、ルートに別名を定義することをお勧め

Route::get('/index/view/{id}', [ 
     'as' => 'route_alias', 
     'uses' => '[email protected]' 
    ]); 
+0

ありがとうございます! – sherbastian

関連する問題