pritam1605's avatar

PUT verb not working

My route file looks like this:

Route::get('/user/settings', [
    'middleware' => ['auth',],
    'uses' => 'UpdateSettingsController@index'
])->name('user.settings');

Route::put('/user/settings', [
    'middleware' => ['auth',],
    'uses' => 'UpdateSettingsController@update',
]);

My view file is as follows:

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Settings</div>

                <div class="panel-body">
                    <form action="{{ route('user.settings') }}" method="post" enctype="multipart/form-data">
                        <input type="file" name="image" id="image">
                        <button type="submit">Upload</button>
                    </form>

                    {{ csrf_field() }}
                    {{ method_field('PUT') }}
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

When I try to upload a file, I get the following error: MethodNotAllowedHttpException in RouteCollection.php line 218:

0 likes
1 reply
pritam1605's avatar

I think I got where I was going wrong:

{{ csrf_field() }}
{{ method_field('PUT') }}

These 2 have to be within the form

Stupid mistake :(

1 like

Please or to participate in this conversation.