laravel MethodNotAllowedHttpException Нет сообщения об ошибке - PullRequest
0 голосов
/ 26 января 2019

Я отправляю форму, но она показывает мне ошибку

MethodNotAllowedHttpException Нет сообщения

Это мой код.

create.blade.php

 <form method="POST" action="/Form/show">
        {{csrf_field()}}
        <div class="form-group">
            First Name : <input class="form-control" type="text" placeholder="John" name="first_name"/>
        </div>
        <div class="form-group">
            Last Name : <input class="form-control" type="text" placeholder="Wick" name="last_name"/>
        </div>
  <button type="submit" class="btn btn-default">Submit</button>
    </form>

ResourceController.php

public function show(){

    $f_data = \App\revesion_registration::all();
    return view('Form.show', compact('f_data'));
}


public function create(){
    return view('form.create');
}

public function store(){
    revesion_registration::create(request(['first_name','last_name']));
return redirect('show');

}

web.php

Route::resource('Form','ResourceController');

Маршрут: список

GET|HEAD | Form | Form.index |App\Http\Controllers\FormsController@index
POST     | Form | Form.store | App\Http\Controllers\FormsController@store
GET|HEAD | Form/create | Form.create | App\Http\Controllers\FormsController@create 
GET|HEAD | Form/{Form} | Form.show | App\Http\Controllers\FormsController@show

Ответы [ 3 ]

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

В вашем файле create.blade.php,

<form method="POST" action="{{ route('Form.store') }}">

В вашем хранилище контроллеров,

public function store(Request $request)
  {
    revesion_registration::create(request(['first_name','last_name']));
return redirect(route('Form.create'));

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

при использовании

Route::resource('routename','ControllerClassName');

Например, у нас есть модель для поста

Route::resource('posts','PostController');

Он зарегистрирует следующие маршруты

Route::get('/posts',  'PostController@index')->name('posts.index');
Route::get('/posts/create',  'PostController@create')->name('posts.create');
Route::post('/posts',  'PostController@store')->name('posts.store');
Route::get('/posts/{post}',  'PostController@show')->name('posts.show');
Route::get('/posts/{post}/edit',  'PostController@edit')->name('posts.edit');
Route::put('/posts/{post}',  'PostController@update')->name('posts.update');
Route::delete('/posts/{post}',  'PostController@destroy')->name('posts.destroy');

Теперь приступим к вашей проблеме

Имя вашей модели revesion_registration, а вашим именем таблицы будет revesion_registrations

Решение

Вам необходимозарегистрируйте маршрут как

revesionregistrations

Route::resource('revesionregistrations','RevesionRegistrationController'); в web.php

и в вашей форме создания

<form name='add_revesionregistrations' method='post' enctype="multipart/form-data" action="{{ route('revesionregistrations.store') }}" autocomplete="off">
                    {{csrf_field()}} 

   <input type="text" name='name' class="form-control">
                   <input type="submit" value="Submit">
                </form>

Ваша проблема будет решена

Now My Suggestion

При создании модели не создавать в нижнем регистре

не revesion_registration

Попробуйте php artisan make:model RevesionRegistration -a

и

Если вы выполняете только CRED Использование операций Route::resource('routename','ControllerClassName');

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

Метод show() принимает только GET запросы, к которым ваша форма пытается POST обратиться. Предполагая, что вы пытаетесь создать новую запись в базе данных, вы должны обновить свою форму до:

<form method="POST" action="Form">

Если вы добавили / обновили маршруты, выполните команду php artisan route:clear, чтобы очистить кэш маршрутов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...