2016-12-15 105 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