使用pageNation向控制器请求页面的值。但是为什么任何参数都无法到达控制器?
Route::get('/index', 'Penpal\ViewController@index')->name('penpal.index');
<form action="{!! route('penpal.index', ['menu' => 'p11-c3']) !!}" method="get">
<select id="inputState" class="form-control" style="height:35px; width:80%" name="pagination" onchange="this.form.submit()">
<option value="3">@lang('penpal/component/indexMenu.twelve')</option>
<option value="4">@lang('penpal/component/indexMenu.twenty_four')</option>
<option value="5">@lang('penpal/component/indexMenu.thirty_six')</option>
</select>
</form>
public function index (Request $request){
return $request;\
}
无法从控制器接收到名为“菜单”的参数。
答案 0 :(得分:3)
您的<form>
使用的是method='get'
,而不是method='POST'
(后者用于通过表单将数据发布到请求。
您还需要在刀片模板中使用@csrf
,否则将无法发布数据:
<form action="{!! route('penpal.index', ['menu' => 'p11-c3']) !!}" method="POST">
@csrf
<select id="inputState" class="form-control" style="height:35px; width:80%" name="pagination" onchange="this.form.submit()">
<option value="3">@lang('penpal/component/indexMenu.twelve')</option>
<option value="4">@lang('penpal/component/indexMenu.twenty_four')</option>
<option value="5">@lang('penpal/component/indexMenu.thirty_six')</option>
</select>
</form>
最后,确保您的路线是::post()
路线。
答案 1 :(得分:0)
Use Post method both route and form
<form action="{!! route('penpal.index', ['menu' => 'p11-c3']) !!}" method="post">
Route::match(['get','post'],'/index', 'Penpal\ViewController@index')->name('penpal.index');
答案 2 :(得分:0)
您没有为路由设置任何路由参数,也没有将任何参数传递给控制器方法。并且最好使用POST然后使用GET。
将此更改为
Route::get('/index', 'Penpal\ViewController@index')->name('penpal.index');
此
Route::post('/index/{menu?}', 'Penpal\ViewController@index')->name('penpal.index');
和您的表格
<form action="{{ route('penpal.index', ['menu' => 'p11-c3']) }}" method="POST">
@csrf
在您的控制器方法中,您可以获取传递的参数
public function index (Request $request, $menu){
print_r($menu);
}