2016-12-15 44 views
0

我想首先爲新手問題道歉。Laravel重定向()不會生成正確的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> 

當我提交我的形式,我得到以下異常:

InvalidArgumentException在UrlGenerator.php行314: 路線[索引/視圖/]沒有定義。

我一直在這裏呆了很長一段時間,我仍然無法弄清楚爲什麼我沒有正確地生成我的路線。

我缺少什麼?

回答

0

您正試圖調用路由,而不是調用控制器。這將這樣的伎倆

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

另外,我建議你去定義別名路線,所以你可以不喜歡

在你的控制器:

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

在你的路線:

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

非常感謝你! – sherbastian