Laravel redirect() 没有生成正确的 url
Laravel redirect() to is not generating the correct 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}', 'IndexController@view');
Route::post('index/create', 'IndexController@create');
和我的表格:
<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 in UrlGenerator.php line 314:
Route [index/view/] not defined.
我被困在这里已经有一段时间了,但我仍然不明白为什么我没有正确生成我的路线。
我错过了什么?
您正在尝试调用路由,而您应该调用控制器。这样就可以了
return redirect()->action('IndexController@view', ['id' => $id])->with($stuff);
此外,我建议您为路由定义别名,这样您就可以做类似
的事情
在你的控制器中:
return Redirect::route('route_alias', ['id' => $id])->with($stuff);
在你的路线中:
Route::get('/index/view/{id}', [
'as' => 'route_alias',
'uses' => 'IndexController@view'
]);
首先,我想为这个新问题道歉。
我正在 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}', 'IndexController@view');
Route::post('index/create', 'IndexController@create');
和我的表格:
<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 in UrlGenerator.php line 314: Route [index/view/] not defined.
我被困在这里已经有一段时间了,但我仍然不明白为什么我没有正确生成我的路线。
我错过了什么?
您正在尝试调用路由,而您应该调用控制器。这样就可以了
return redirect()->action('IndexController@view', ['id' => $id])->with($stuff);
此外,我建议您为路由定义别名,这样您就可以做类似
的事情在你的控制器中:
return Redirect::route('route_alias', ['id' => $id])->with($stuff);
在你的路线中:
Route::get('/index/view/{id}', [
'as' => 'route_alias',
'uses' => 'IndexController@view'
]);