Я следовал нескольким учебникам по CRUD в блогах для Laravel и пытаюсь перейти к следующему шагу, создав веб-сайт рецептов для себя.
Идея состоит в том, что пользователь создает новый рецепт, который содержит таблицы title
, description
, portions
, user_id
до recipes
.
У меня это работает, и оно успешно сохраняется в БД вместе со связанными tags
в recipe_tags
таблице.
В настоящее время у меня есть storeController
перенаправление в представление recipe.show
, которое работает нормально, но я пытаюсь заставить его перенаправить в представление steps.create
и извлечь title и description издБ и связанные id
в таблице recipes
.
Вот мой store @ recipesController:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|max:255',
'description' => 'required',
'portions' => 'required'
]);
$recipe = new Recipe;
$recipe->name = $request->name;
$recipe->description = $request->description;
$recipe->portions = $request->portions;
$recipe->user_id = auth()->user()->id;
$recipe->save();
if(isset($request->tags)){
$recipe->tags()->sync($request->tags, true);
} else {
$post->tags()->sync([]);
}
return redirect()->route('steps.create', ['id' => $recipe->id]);
}
И это мой create @ stepsController
public function create($id)
{
$recipe = Recipe::find($id);
return view('steps.create')->withRecipe($recipe);
}
Но он возвращает следующее:
Type error: Too few arguments to function App\Http\Controllers\StepsController::create(), 0 passed and exactly 1 expected
Я немного не в себе.Я думаю, что это может быть проблема с моими маршрутами (оба из которых Route::resource(...)
)
Мой запасной вариант - использовать Ajax для записи рецепта и шагов в базу данных на той же странице, но я 'Лучше научиться делать это так, как я планировал изначально.
(РЕДАКТИРОВАТЬ: он перенаправляет на следующий URL-адрес в случае, если это имеет какое-либо значение.)
http://127.0.0.1:8000/steps/create?id=3
Список маршрутов:
$ php artisan route:list
+--------+-----------+------------------------+------------------+------------------------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+------------------------+------------------+------------------------------------------------------------------------+--------------+
| | GET|HEAD | / | | App\Http\Controllers\PagesController@index | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | home | home | App\Http\Controllers\HomeController@index | web,auth |
| | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,guest |
| | POST | login | | App\Http\Controllers\Auth\LoginController@login | web,guest |
| | POST | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web |
| | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail | web,guest |
| | GET|HEAD | password/reset | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest |
| | POST | password/reset | | App\Http\Controllers\Auth\ResetPasswordController@reset | web,guest |
| | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController@showResetForm | web,guest |
| | GET|HEAD | recipes | recipes.index | App\Http\Controllers\RecipesController@index | web,auth |
| | POST | recipes | recipes.store | App\Http\Controllers\RecipesController@store | web,auth |
| | GET|HEAD | recipes/create | recipes.create | App\Http\Controllers\RecipesController@create | web,auth |
| | DELETE | recipes/{recipe} | recipes.destroy | App\Http\Controllers\RecipesController@destroy | web,auth |
| | PUT|PATCH | recipes/{recipe} | recipes.update | App\Http\Controllers\RecipesController@update | web,auth |
| | GET|HEAD | recipes/{recipe} | recipes.show | App\Http\Controllers\RecipesController@show | web,auth |
| | GET|HEAD | recipes/{recipe}/edit | recipes.edit | App\Http\Controllers\RecipesController@edit | web,auth |
| | POST | register | | App\Http\Controllers\Auth\RegisterController@register | web,guest |
| | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,guest |
| | GET|HEAD | steps | steps.index | App\Http\Controllers\StepsController@index | web,auth |
| | POST | steps | steps.store | App\Http\Controllers\StepsController@store | web,auth |
| | GET|HEAD | steps/create | steps.create | App\Http\Controllers\StepsController@create | web,auth |
| | GET|HEAD | steps/{step} | steps.show | App\Http\Controllers\StepsController@show | web,auth |
| | PUT|PATCH | steps/{step} | steps.update | App\Http\Controllers\StepsController@update | web,auth |