How to use patch request in Laravel?

后端 未结 3 1111
清歌不尽
清歌不尽 2021-02-04 07:44

There is entity User that is stoted in table Users

Some fields in this table are null by default.

I need to update these fields and se

相关标签:
3条回答
  • 2021-02-04 08:04

    your route is:

    Route::patch('users/update', 'UsersController@update');
    

    replace your route with following route that use for all CRUD opration:

    Route::resource('users', 'UsersController');
    

    if you use ajax for submit data then replace your type and url with following:

    type: "patch",
    url: "{{url('/')}}users/" + id,
    

    if you don't use ajax than use following:

    <form method="POST" action="{{route('users.update',['id' => $id])}}">
        {{csrf_field()}}
        {{ method_field('PATCH') }}
    </form>
    

    update: after version 5.6 you can use these syntax for above functions in any blade file:

    <form method="POST" action="{{route('users.update',['id' => $id])}}>
        @csrf
        @method('PATCH')
    </form>
    
    0 讨论(0)
  • 2021-02-04 08:05

    Yes, you need to send id for route patch. Example from https://laravel.com/docs/5.4/controllers#resource-controllers for Laravel

    PUT/PATCH - /photos/{photo}, so you don't need update word in your route. Just users/id and methods PUT or PATCH.

    UPD for CRUD operations:

    // Routes
    Route::resource('items', 'ItemsController');
    
    // Form for update item with id=1
    <form method="POST" action="{{ route('items.update', ['id' => 1])}}">
        {!! csrf_field() !!}
        <input name="_method" type="hidden" value="PATCH">
        <!-- Your fields here -->
    </form>
    
    // Controller
    public function update($id, Request $request)
    {
        // Validation here
    
        $item = Item::findOrFail($id);
    
        // Update here
    }
    
    0 讨论(0)
  • 2021-02-04 08:07

    Update the routing as per below

    Route::patch('/users/update/{id}',[
        'uses' => 'UsersController@update'
    ]);
    
    0 讨论(0)
提交回复
热议问题