laravel 搜索输入 Get 而不是 Post

laravel search input Get instead of Post

Blade:

<form id="search_field" style="margin: 0; display: none" class="submit_form item" method="post" action="{{route('search')}}">
    <div class="ui icon input">
        <input style="padding-top: 5px;padding-bottom: 5px" name="search" type="text" placeholder="Search...">
        <i class="form search link icon"></i>
    </div>
</form>

JS:

$('#search').click(function () {
    $('#search').hide();
    $("#search_field").animate({
        width: 'toggle'
    });
})

$('.form').click(function () {

    $('.submit_form').submit();
})

Laravel:

Route::post('search', 'SearchController@search')->name('search');

因此,如果我按下图标,它就会越过 post 路线。 但是,如果我在输入中写了一些东西并按下回车键,它就会越过获取路径。

我应该怎么做才能让它在 post 路线的各个方向上行驶?

也许在您的 routes/web.php 文件中存在与该操作相同的 URL 获取路径?路由是按照从上到下的顺序执行的,所以必须把post路由放在get路由之前。 像这样

Route::post('/search', 'yourcontroller@store');
Route::get('/search', 'yourcontroller@index');

或 确保将表单标签中的 POST 方法大写

<form id="search_field" style="margin: 0; display: none" class="submit_form item" method="POST" action="{{route('search')}}">

已解决:

我必须在我的表单中实现 {{ csrf_field() }}

<form id="search_field" style="margin: 0; display: none" class="submit_form item" method="post" action="{{route('search')}}">
{{ csrf_field() }}
<div class="ui icon input">
    <input style="padding-top: 5px;padding-bottom: 5px" name="search" type="text" placeholder="Search...">
    <i class="form search link icon"></i>
</div>