我有一张表格:
{!!Form::open(['route'=>'fastsearch.show'])!!}在routes.php中,我有:
Route::resource('fastsearch','SearchController');在SearchController中,我有一个方法show(),它将返回发送到一个名为fastsearch的视图(即fastsearch.blade.php)。
如果我查看表单所在的页面的来源,我会看到以下内容:
<form method="POST" action="http://localhost:8000/fastsearch/%7Bfastsearch%7D" accept-charset="UTF-8"><input name="_token" type="hidden" value="hLcSkGk2p5XfTkFEv2pwGgcVQB18vHQIGMpOVGpM">如果我在表单中输入一些数据并单击Submit,则会得到以下错误:
MethodNotAllowedHttpException in RouteCollection.php line 201:我的问题是为什么动作URL中的额外段(这个:/%7Bfastsearch%7D). )路线有问题吗?
(为了给你提供所有的细节,这是一个通用的搜索表格,几乎每一页都有,这样用户就可以在几乎所有的页面上快速搜索。)因此,无论您是在主页上还是在/ Home /Subpage/Subpage{通配符}{通配符}上,您仍然可以看到并使用它)
发布于 2015-07-09 21:06:11
您正在尝试将post请求发送到期望get请求的路由。
更改:
{!! Form::open(['route'=>'fastsearch.show']) !!}至:
{!! Form::open(['route'=>'fastsearch.index']) !!}其中,index是希望接收post请求的操作的名称。
不过,您最好还是为此使用特定的命名路线。
Route::post('fastsearch', [
'as' => 'fastsearch.search', 'uses' => 'SearchController@search'
]);查看http://laravel.com/docs/5.1/controllers#restful-resource-controllers获取有关资源控制器的更多信息,查看http://laravel.com/docs/5.1/routing#named-routes获取有关命名路由的更多信息。
还可以将./artisan route:list用于现有路由的列表。
https://stackoverflow.com/questions/31327899
复制相似问题