MethodNotAllowedHttpException при публикации данных из формы в контроллер - PullRequest
0 голосов
/ 28 января 2019

Я делаю простое поле ввода и отправляю данные из формы в контроллер, но всегда получаю исключение MethodNotAllowedHttpException.

blade.php

<form class="form-horizontal" method="post" action="sale/api">

<div class="form-group">
    <label for="name" class="col-lg-2 control-label">
        Subdomain Name
    </label>
    <div class="col-lg-10">
        <input type="text" class="form-control" id="name" name="name">
    </div>
</div>
<div class="form-group">
    <label for="api_key" class="col-lg-2 control-label">
        Api Key
    </label>
    <div class="col-lg-10">
        <input type="api_key" class="form-control" id="api_key" name="api_key">
    </div>
</div>
<div class="form-group">
    <div class="col-lg-10 col-lg-offset-2">
        <button type="submit" class="btn btn-primary">Save</button>
    </div>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>

Контроллер

    public function sync()
    {

        $input = Input::only('name','api_key');            
        $user = new Sale;
        $user->name = $input['name'];
        $user->api_key = $input['api_key'];

        Debugbar::info($user->name);
    }

Маршруты

Route::post('sale/api','SaleController@sync');

Ответы [ 4 ]

0 голосов
/ 28 января 2019

обновить форму как это

<form class="form-horizontal" method="post" action="{{ url('sale/api')}}">
0 голосов
/ 28 января 2019

Это ваше действие, которое необходимо изменить:

html:

<form class="form-horizontal" method="post" action="{{ route('sale.api') }}">
    @csrf
    <div class="form-group">
        <label for="name" class="col-lg-2 control-label">
            Subdomain Name
        </label>
        <div class="col-lg-10">
            <input type="text" class="form-control" id="name" name="name">
        </div>
    </div>
    <div class="form-group">
        <label for="api_key" class="col-lg-2 control-label">
            Api Key
        </label>
        <div class="col-lg-10">
            <input type="api_key" class="form-control" id="api_key" name="api_key">
        </div>
    </div>
    <div class="form-group">
        <div class="col-lg-10 col-lg-offset-2">
             <button type="submit" class="btn btn-primary">Save</button>
        </div>
    </div>
    <input type="hidden" name="_token" value="{{ csrf_token() }}">

маршрут:

Route::post('/sale/api','SaleController@sync')->name(sale.api);

надеюсь, это поможет!:)

0 голосов
/ 28 января 2019

Добавьте поле csrf в форму.

<form class="form-horizontal" method="post" action="sale/api">            
{{csrf_field()}}

Laravel won 'позволит вам публиковать сообщения без токена csrf.

0 голосов
/ 28 января 2019

Обновите ваш route.php как,

Route::post('/sale/api',array('as' => 'sale.api', 'uses' => 'SaleController@sync'));

Обновите свой блейд как,

<form class="form-horizontal" method="post" action="{{route('sale.api')}}">

Дайте мне знать, если он работает.

...