【问题标题】:Why i have POST method if everywhere is GET method?如果到处都是 GET 方法,为什么我有 POST 方法?
【发布时间】:2017-11-27 09:43:03
【问题描述】:

我想通过参数进行搜索。但它表明我混合了 GET 和 POST 方法。 (错误信息:MethodNotAllowedHttpException 没有消息)。 Blade 表单默认有 POST。我改为 GET。路线有 GET 方法。也许你可以看到我做错了什么。这是我的观点:

{!! Form::open([ 'action' => ['HomePageController@index', 'method' => 'get']]) !!}
<div class="container">
    <div class="col-xs-2 form-inline">
        {!! Form::label('city_id', trans('quickadmin.companies.fields.city').'', ['class' => 'control-label']) !!}
        {!! Form::select('city_id', $cities, old('city_id'), ['class' => 'form-control select2') !!}
    </div>

    <div class="col-xs-3 form-inline">
        {!! Form::label('categories', trans('quickadmin.companies.fields.categories').'', ['class' => 'control-label']) !!}
        {!! Form::select('categories', $categories, old('categories'), ['class' => 'form-control select2']) !!}
    </div>
    <div class="col-xs-3 form-inline">
        {!! Form::label('search', trans('quickadmin.companies.fields.name').'', ['class' => 'control-label']) !!}
        {!! Form::text('search', old('search'), ['class' => 'form-control', 'placeholder' => 'Search']) !!}
    </div>
    <div class="form-inline">
        <div class="col-xs-2">
            <button type="submit"
                    class="btn btn-primary">
                    Search
            </button>
        </div>
    </div>
</div>

{!! Form::close() !!}

我的控制器:

    public function index( Request $request)
{
    $cities = \App\City::get()->pluck('name', 'id')->prepend(trans('quickadmin.qa_please_select'), '');
    $categories = \App\Category::get()->pluck('name', 'id')->prepend(trans('quickadmin.qa_please_select'), '');
    $name = $request->input('city_id');
    $companies = \App\Company::All()->where('city_id', '=', $name);

    return view('table', compact('companies', $companies, 'cities', $cities, 'categories', $categories));

我的路线:

 Route::get('/', 'HomePageController@index');

感谢您的帮助。

【问题讨论】:

  • “刀片形式默认有POST。我改成了 GET。” - 当然,你已经检查了生成的 HTML 代码,看看它是否真的在那里说 GET,对吧……?

标签: laravel post get


【解决方案1】:

表单打开有问题,这样试试:

{!! Form::open([ 'action' => 'HomePageController@index', 'method' => 'get']) !!}

【讨论】:

  • 你是对的,sintax 错误。为什么它不按我的方式工作?
  • 因为你使action 像数组[ 'action' =&gt; ['HomePageController@index', 'method' =&gt; 'get']] 而它应该只是初始数组的一个值!!
  • 默认情况下,表单的方法是 POST,这就是你得到 post 的原因!
猜你喜欢
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 2019-02-08
  • 2011-05-07
  • 2015-08-06
  • 1970-01-01
相关资源
最近更新 更多