2 回答

TA贡献1943条经验 获得超7个赞
您的索引方法是正确的-它获取$posts
变量并将其压缩到返回视图中。
但是,当您存储新帖子时,您只是在存储它,而是通过不带集合的store()
方法的return语句调用同一页面视图:
return view('backend.posts.index');
您尚未$posts
从store()
方法中向视图发送集合变量,并且您的视图期望该变量在那里,因此出现错误。要修复您的store()
方法,请抓住这些帖子并压缩:
$posts = Post::all(); return view('backend.posts.index', compact('posts'));

TA贡献1805条经验 获得超9个赞
一种方法是在存储帖子后进行重定向。因为视图需要$posts。如果仅返回视图,它将显示错误。因此,我们可以重定向到索引函数以$posts在视图中检索并加载它。
public function store(Request $request)
{
$rules = [
'title' => ['required', 'min:3'],
'body' => ['required', 'min:5']
];
$request->validate($rules);
$user_id = Auth::id();
$post = new Post();
$post->user_id = $user_id;
$post->title = request('title');
$post->body = request('body');
$post->save();
return redirect()->route('index');
}
- 2 回答
- 0 关注
- 141 浏览
添加回答
举报