Я пытаюсь добавить запись в базу данных с использованием контроллера ресурсов, однако я получаю ошибку MethodNotAllowedHttpException. Я рассмотрел несколько подобных вопросов, например, тот или иной , однако никто мне не ответил. Это мой код:
routes.php
Route::resource('animals', 'AnimalsCtrl');
Часть моей модели.
protected $table='animals'; protected $primaryKey='name'; protected $fillable = [ 'name', 'type' ];
Метод хранения в контроллере.
public function store(Request $request) { $creature = $request->all(); Animal::create($creature); }
Это форма.
<form method="post"> <div class="small-6 small-centered large-4 large-centered columns"> {!! csrf_field() !!} <table> <tr> <th scope="row">Name</th> <td> <input type="text" name="name" maxlength="50" required> </td> </tr> <tr> <th scope="row">Type</th> <td> <input type="text" name="type" maxlength="20" required> </td> </tr> <tr> <th> <button type="submit" class="button success"> <i class="fi-plus"></i> Add Animal </button> </th> <td> <a href="{{url('/animals')}}" class="button alert"> <i class="fi-x-circle"></i> Cancel </a> </td> </tr> </table> </div> </form>
Есть ли у кого-нибудь предложения о том, как я могу это разрешить?
Когда вы публикуете форму, какой URL-адрес вы отправляете в форму? URL должен быть в действии. Например, следующим образом
<form action="/animals" method="post"> </form>
Возможно, я ошибаюсь, но, думаю, вам не хватает параметра действия в вашей форме
Попробуй это:
<form action="/animals" method="post">
Вместо этого
<form method="post">
В качестве подсказки я предлагаю вам использовать фасад HTML Forms. Проверьте это: https://laracasts.com/series/laravel-5-fundamentals/episodes/10
Вот документация для Laravel 5.1 https://laravelcollective.com/docs/5.1/html