![](/img/trans.png)
[英]Missing required parameters for [Route: admin.destroy] on Laravel form action
[英]Laravel redirect()->action not working and show missing parameters
PHP 版本:7.2
Laravel 版本:6.2
我正在通過 laravel 按文章做一個簡單的項目。
當我遇到 redirect()->action 時,我對此有點困惑。 我想通過 redirect()->action 傳遞一個名為 id 的變量,但它不起作用。
錯誤消息缺少 [Route: blog/post.show] [URI: blog/post/{post}] 的必需參數。
如果我刪除變量名,只傳遞變量值,它就會工作。 我閱讀了手冊,但仍然無法理解原因。 你能幫我解釋一下邏輯嗎? 謝謝你。 下面是示例代碼。
路由器.php
Route::group(['prefix' => 'blog',
'as' => 'blog/',
'namespace' => 'Blog'],
function(){
Route::resource('/post',"PostController");
});
后控制器.php
創建新博文(錯誤)
無法理解為什么這不起作用? 變量名($id) 是一樣的。
public function store(Request $request)
{
$post = new BlogPost;
$post->title = $title;
$post->content = $content;
$post->save();
return redirect()->action(
'Blog\PostController@show', ['id' => $post->id]
);
}
創建新的博客文章(正確)
public function store(Request $request)
{
$post = new BlogPost;
$post->title = $title;
$post->content = $content;
$post->save();
return redirect()->action(
'Blog\PostController@show', [$post->id]
);
//Or 'Blog\PostController@show', $post->id
}
顯示新的博文
public function show($id)
{
$post = BlogPost::find($id);
if(! $post) {
abort(404);
}
$content = $post->content;
return view("blog.post", [
"title" => $post->title,
"content" => $content,
]);
}
謝謝
這是代碼:
return redirect()->route('routename', ['id' => 1]);
您收到錯誤消息是因為您使用的是Resource Route
,它將自動將模型與路由綁定
更多信息請參考: https : //laravel.com/docs/6.x/routing#route-model-binding
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.