【发布时间】:2023-03-30 02:24:02
【问题描述】:
我的应用程序的索引视图中有一个搜索表单,但是每当我提交它时,它都会重定向回主页。查看 Chrome 的网络选项卡,我在提交时看到了一个302 Move Permanently 状态码。我想要做的是,我正在获取用户关键字,存储它们并重定向到搜索页面。
编辑: 在搜索升技后,我发现this 也有类似的问题。提供的答案并没有解决我的问题。
在 routes.php 中
Route::get('/', ['as' => 'home', 'uses' => 'PagesController@home']);
/.../
Route::group(['before' => 'csrf'], function()
{
Route::post('/', ['as' => 'post-search', 'uses' => 'UserController@postSearch']);
});
我的表格:
<form action="{{ URL::route('post-search') }}" method="POST" class="form-inline search">
{{ Form::token() }}
<input type="text" name="search" class="form-control" placeholder="{{ trans('form.search') }}">
<input type="submit" class="btn btn-primary" value="Search">
</form>
最后,我的控制器方法:
public function postSearch()
{
$fields = Input::all();
$rules = [ 'search' => 'required' ];
$validator = Validator::make($fields, $rules);
if ($validator->fails())
{
return 'Validation did not work.';
}
else
{
$search = Input::get('search');
return Redirect::route('search', $search);
}
return 'Something terrible happened.';
}
非常感谢您的帮助。
【问题讨论】:
-
是的,这是我的错。但似乎 postSearch() 方法甚至没有被触发。
-
奇怪,您的确切代码(减去 PageController 并重定向到“搜索”路线)在我这边完美运行。
-
这确实很奇怪,我用 Firefox 试过,但我也得到了 302 Move Permanently 状态码!
-
你的 Laravel 版本是什么?您是否安装了任何第三方软件包?你做了
composer dump-autoload吗? (即使我的尝试没有这样做) -
不,我有一个干净的 Laravel 4.2 安装,没有第三方包。我也执行了该命令,但没有任何改变。