Метод GET не поддерживается для этого маршрута. Поддерживаемые методы: PUT. но я использую PUT - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь обновить свою таблицу сообщений, но она продолжает выдавать ошибку метода, в которой говорится, что я должен использовать PUT вместо GET.

. Дело в том, что я использую PUT. Я пытался изменить @crsf и изменить @method('PUT') несколько раз, включая скрытый ввод. Когда я вызываю route:list, это показывает, что я использую метод PUT, но все равно выдает мне ту же ошибку. Понятия не имею, что это может быть, у кого-нибудь есть идеи?

    <section id="index" class="container">
        <div class="col-md-12 d-flex justify-content-center mt-5">
            <article class="new-post col-md-6 py-2">

                <header class="col-12 row d-flex justify-content-center">
                    <div class="add-header p-1">
                        <h2 class="m-2">Editar Post</h2>
                    </div>
                </header>

                <form method="POST" class="mt-5" action= "/edit_post/{id}" enctype="multipart/form-data">
                    @method('PUT')
                    @csrf

                    <div class="add-photo form-group d-flex justify-content-center p-5">
                        <label for="file-input">
                            <img src="{{ url($post->imagem) }}" alt="imagem do post">
                        </label>
                        <input id="file-input" name="imagem" type="file">
                    </div>

    // rotinas pagina index
    Route::get('/index', 'PostsController@posts');

    // crud posts
    Route::get('/add_post', 'PostsController@adicionandoPost');
    Route::post('/add_post', 'PostsController@salvandoPost');
    Route::put('/edit_post/{id}', 'PostsController@alterarPost');
    Route::delete('/edit_post{id}', 'PostsController@deletarPost');

    //crud usuario
    Route::get('/profile/{id}', 'UserController@profile');
    Route::put('/profile/{id}', 'UserController@alterarUsuario');
    Route::delete('/index', 'UserController@deletarUsuario')->name('delete');

});

PostsController:

public function alterarPost($id, Request $request) {
    $post = Post::findOrFail($id);

Форма:


                    <input type="hidden" name="_method" value="PUT">
                    <input type="hidden" name="_token" value="{{ csrf_token() }}">

                    <div class="add-photo form-group d-flex justify-content-center p-5">
                        <label for="file-input">
                            <img src="{{ url($post->imagem) }}" alt="imagem do post">
                        </label>
                        <input id="file-input" name="imagem" type="file">
                    </div>

                    <input type="hidden" name="user_id" value="{{$post->id}}">

                    <div class="add-input form-group mt-2">
                        <input class="col-12 p-1" name="descricao" type="text" placeholder="Descrição" value="{{ $post->descricao }}">
                    </div>

                    <div class="add-input form-group">
                        <input class="col-12 p-1" name="tags" type="text" placeholder="Tags" value="{{ $post->tags }}">
                    </div>

                    <div class="add_photo d-flex justify-content-end p-3">
                        <button class="btn btn-danger m-1" type="button">Cancelar</button>
                        <button class="btn btn-success m-1" type="submit">Publicar</button>
                    </div>
                </form>

Ответы [ 4 ]

0 голосов
/ 11 октября 2019

Проверьте файл .htaccess, как только он должен иметь эту строку

 Header set Access-Control-Allow-Methods "GET,POST,PUT,DELETE,OPTIONS"
0 голосов
/ 11 октября 2019

Увидеть Web.php У вас есть ошибка в вашем маршруте Изменить это:

Route::delete('/edit_post{id}', 'PostsController@deletarPost');

На

Route::delete('/edit_post/{id}', 'PostsController@deletarPost');

Вы забыли добавить /

0 голосов
/ 11 октября 2019

В вашей форме измените enctype на:

application/x-www-form-urlencoded

Put и Patch Действия не используют типичные данные формы post.

0 голосов
/ 11 октября 2019

Ваша форма выглядит так.

 <form method="post" class="mt-5" action= "{{ route('editpost',['id'=>$post->id]) }}" enctype="multipart/form-data">
        {{ method_field('PUT') }}
        {{ csrf_field() }}
    </form>

ваша web.php

Route::put('/edit_post/{id}', 'PostsController@alterarPost')->name('editpost');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...