我有一个显示类别/主要帖子的页面,单击该页面将导航到包含与主帖子主题相关的子帖子的页面。然而,问题是,当我尝试使用 ->get() 时,它显示以下错误:
我用来获取信息的函数如下(URL 显示为 slug):
public function knowledge_collection($slug, Request $request){
$knowledge_post_primary = Knowledge::where('knowledge_slug', $slug)->get();
//dd($knowledge_post_primary);
$knowledge_posts = Knowledge_Post::where('parent_id', $knowledge_post_primary->id)->get();
return view('knowledge.knowledge_posts', compact('knowledge_posts', 'knowledge_post_primary'));
}
这很可能是一个简单的修复,但我似乎找不到它。我希望其他人能够并且将来能够帮助我:)
我尝试以不同的方式并使用 FindorFail() 请求数据,但到目前为止没有任何效果。
编辑:要求的屏幕截图。
编辑编辑:使用@Gulshans代码后,我收到以下错误:
最佳答案
如果您想获取knowledge_slug的Knowledge_Post,并且只有一个Knowledge记录,您应该使用
public function knowledge_collection($slug, Request $request){
$knowledge_post_primary = Knowledge::where('knowledge_slug', $slug)->first();
$knowledge_posts = Knowledge_Post::where('parent_id', $knowledge_post_primary->id)->get();
return view('knowledge.knowledge_posts', compact('knowledge_posts', 'knowledge_post_primary'));
}
如果有很多记录并且希望Knowledge_Posts与所有记录相关,则在whereIn中,要获取所有id,您应该使用pluck('id')->all()
或pluck ('id')->toArray()
public function knowledge_collection($slug, Request $request){
$knowledge_post_primary_Ids = Knowledge::where('knowledge_slug', $slug)->pluck('id')->all();
$knowledge_posts = Knowledge_Post::whereIn('parent_id', $knowledge_post_primary_Ids)->get();
return view('knowledge.knowledge_posts', compact('knowledge_posts', 'knowledge_post_primary'));
}
关于php - get() 不起作用,但 First() 起作用。我需要使用 get() 来获取我的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55947410/