首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由laravel自动添加的表单动作URL中的额外奇怪段

由laravel自动添加的表单动作URL中的额外奇怪段
EN

Stack Overflow用户
提问于 2015-07-09 20:46:55
回答 1查看 165关注 0票数 0

我有一张表格:

代码语言:javascript
复制
{!!Form::open(['route'=>'fastsearch.show'])!!}

在routes.php中,我有:

代码语言:javascript
复制
Route::resource('fastsearch','SearchController');

在SearchController中,我有一个方法show(),它将返回发送到一个名为fastsearch的视图(即fastsearch.blade.php)。

如果我查看表单所在的页面的来源,我会看到以下内容:

代码语言:javascript
复制
<form method="POST" action="http://localhost:8000/fastsearch/%7Bfastsearch%7D" accept-charset="UTF-8"><input name="_token" type="hidden" value="hLcSkGk2p5XfTkFEv2pwGgcVQB18vHQIGMpOVGpM">

如果我在表单中输入一些数据并单击Submit,则会得到以下错误:

代码语言:javascript
复制
MethodNotAllowedHttpException in RouteCollection.php line 201:

我的问题是为什么动作URL中的额外段(这个:/%7Bfastsearch%7D). )路线有问题吗?

(为了给你提供所有的细节,这是一个通用的搜索表格,几乎每一页都有,这样用户就可以在几乎所有的页面上快速搜索。)因此,无论您是在主页上还是在/ Home /Subpage/Subpage{通配符}{通配符}上,您仍然可以看到并使用它)

EN

回答 1

Stack Overflow用户

发布于 2015-07-09 21:06:11

您正在尝试将post请求发送到期望get请求的路由。

更改:

代码语言:javascript
复制
{!! Form::open(['route'=>'fastsearch.show']) !!}

至:

代码语言:javascript
复制
{!! Form::open(['route'=>'fastsearch.index']) !!}

其中,index是希望接收post请求的操作的名称。

不过,您最好还是为此使用特定的命名路线。

代码语言:javascript
复制
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用于现有路由的列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31327899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档