我有一个显示类别/主要帖子的页面,单击该页面将导航到包含有关主要帖子主题的子帖子的页面。问题是,但是,当我尝试使用-> 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代码后,出现以下错误:
答案 0 :(得分:1)
尝试此操作可得到单个结果:
$knowledge_post_primary = Knowledge::where('knowledge_slug','=',$slug)->first()->toArray();
if(!empty($knowledge_post_primary)){
$knowledge_posts = Knowledge_Post::where('parent_id', '=',$knowledge_post_primary['id'])->get();
}
尝试以下方法可得到多个结果:
$knowledge_post_primary = Knowledge::where('knowledge_slug','=',$slug)->get()->toArray();
if(!empty($knowledge_post_primary)){
foreach($knowledge_post_primary as $post_primary){
$knowledge_posts = Knowledge_Post::where('parent_id', '=',$post_primary['id'])->get()->toArray();
dd($knowledge_posts);
}
}
答案 1 :(得分:1)
如果您想获取Knowledge_slug的Knowledge_Post,并且只有一条知识记录,则应该使用
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'));
}