Это потому что вы объявили two the same routes
. Это:
Route::get('/admin/products', 'ProductController@index');
Route::get('/admin/products', 'ProductController@store');
Теперь, когда эта строка выполнена redirect('/admin/products');
, Laravel не будет вызывать первый определенный вами маршрут, который Route::get('/admin/products', 'ProductController@index');
, а будет вызывать последний маршрут, который вы определено, Route::get('/admin/products', 'ProductController@store');
.
После вызова метода store в контроллере продукта, метод ожидает запрос, который включает name
, price and etc.
.
Поскольку вы только что перенаправили только без передачи аргумента, теперь laravel выдаст вам ошибку, подобную той, что вы представили выше.
Чтобы решить эту проблему, измените свой второй метод маршрута на ProductController@store
. Как это
Route::post('/admin/products', 'ProductController@store');