Можно ли добиться обновления или удаления функциональности с помощью POST и без использования hidden () в представлении - PullRequest
0 голосов
/ 24 августа 2018

Добрый день всем, я новичок в фреймворке Laravel и, когда я прочитал несколько статей о HTTP-глаголах, в которых говорится, что POST универсален как для PUT, так и для DELETE (ссылка:

https://softwareengineering.stackexchange.com/questions/114156/why-are-there-are-no-put-and-delete-methods-on-html-forms

) и, таким образом, мне интересно, возможно ли достичь функциональности Update и Delete с помощью POST и без использования hidden () в самом представлении.Например, если вы посмотрите на приведенный ниже код, то скрытый метод используется, чтобы уточнить, какой HTTP-глагол следует использовать в этом случае PUT, и что, если я удалю его и попытаюсь обновить данные, это будет возможно.Код:

@extends('layouts.app')
@section('content')
<h1>Income</h1>
<br>
{!! Form::open(['action'=>['IncomeController@update',$income->id], 'method' =>'POST']) !!}
    <div class="form-group">
    {{Form::label('Title', 'Title')}}
    {{Form::text('Title', $income->Title, ['class' =>'form-control', 'placeholder' =>'Enter title'])}}

    </div>
    **{{Form::hidden('_method', 'PUT')}}**
    {{Form::submit('Create', ['class'=>'btn btn-primary'])}}
{!! Form::close() !!}
@stop

1 Ответ

0 голосов
/ 24 августа 2018

предположим, если у вас есть Маршрут, подобный этому

Route::put('income/update/{id}', 'IncomeController@update');
Route::delete('income/delete/{id}', 'IncomeController@delete');

Тогда вы можете заменить свой маршрут на этот

Route::post('income/update/{id}', 'IncomeController@update');
Route::post('income/delete/{id}', 'IncomeController@delete');

И затем изменить свою форму следующим образом (Просто удалите hiddenполе)

@extends('layouts.app')
@section('content')
<h1>Income</h1>
<br>
{!! Form::open(['action'=>['IncomeController@update',$income->id], 'method' =>'POST']) !!}
    <div class="form-group">
    {{Form::label('Title', 'Title')}}
    {{Form::text('Title', $income->Title, ['class' =>'form-control', 'placeholder' =>'Enter title'])}}

    </div>
    {{Form::submit('Create', ['class'=>'btn btn-primary'])}}
{!! Form::close() !!}
@stop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...