在表单中使用 post 在路由中发送 slug
Sending slug in route using post in form
我正尝试在路线中发送 {slug}:
Route::post('page-edit/{slug}', 'PageController@postSavePage');
我认为:
{!! Form::open(array('action' => 'PageController@postSavePage')) !!}
在控制器中:
public function postSavePage($slug = null){
dd($slug);
}
但我有错误:
Missing required parameters for [Route: ] [URI: page-edit/{slug}]. (View: /var/www/html/CMS/resources/views/admin/pages/page-edit.blade.php)
正确的语法是什么?
我认为您也没有在 blade 模板中发送 {slug}
参数:
{!! Form::open(array('action' => 'PageController@postSavePage', $slug))) !!}
在你的控制器中:
public function postSavePage($slug = null){
// here's you can define $slug var, for example :
$slug = 3;
return view('admin.pages.page-edit', compact('slug'));
}
如果您希望 slug 是 optional,您必须在 routes.php
文件中的参数名称中添加一个问号 (?)。
像这样:
Route::post('page-edit/{slug?}', 'PageController@postSavePage');
如果不这样做,则必须将 slug 添加到表单的 url 中。像这样:
{!! Form::open(array('action' => array('PageController@postSavePage', 'slug'))) !!}
更新:
我想您发送此请求的页面与您尝试 post 的页面相同 url。在这种情况下,最好的办法是将表单的操作字段留空。这将确保表单提交到相同的 url.
所以你可以这样做:
{!! Form::open() !!}
我正尝试在路线中发送 {slug}:
Route::post('page-edit/{slug}', 'PageController@postSavePage');
我认为:
{!! Form::open(array('action' => 'PageController@postSavePage')) !!}
在控制器中:
public function postSavePage($slug = null){
dd($slug);
}
但我有错误:
Missing required parameters for [Route: ] [URI: page-edit/{slug}]. (View: /var/www/html/CMS/resources/views/admin/pages/page-edit.blade.php)
正确的语法是什么?
我认为您也没有在 blade 模板中发送 {slug}
参数:
{!! Form::open(array('action' => 'PageController@postSavePage', $slug))) !!}
在你的控制器中:
public function postSavePage($slug = null){
// here's you can define $slug var, for example :
$slug = 3;
return view('admin.pages.page-edit', compact('slug'));
}
如果您希望 slug 是 optional,您必须在 routes.php
文件中的参数名称中添加一个问号 (?)。
像这样:
Route::post('page-edit/{slug?}', 'PageController@postSavePage');
如果不这样做,则必须将 slug 添加到表单的 url 中。像这样:
{!! Form::open(array('action' => array('PageController@postSavePage', 'slug'))) !!}
更新:
我想您发送此请求的页面与您尝试 post 的页面相同 url。在这种情况下,最好的办法是将表单的操作字段留空。这将确保表单提交到相同的 url.
所以你可以这样做:
{!! Form::open() !!}