0
我有一个模型之间有很多关系:post和category在laravel应用程序。我定义了这些关系为:通过除id以外的其他字段检索数据有很多关系
public function category() {
return $this->belongsTo('artSite\category');
}
public function posts() {
return $this->hasMany('artSite\post');
}
现在我想要找回属于其衍生在HTTP请求中的特定类别的职位:
Route::get('posts/categories/{categoryName}','[email protected]')
下面我展示我的控制器功能(它工作很好!):
public function showPostGivenCategory($categoryName) {
$category = category::where('category_name','=',$categoryName)-first();
$posts = category::find($category->id)->posts;
return view('pages.homePage')->with('categories',$categories)with('posts',$posts);
}
在这个解决方案中,我创建了2个查询。是否有任何可能的方法来创建1个查询来检索具有很多关系的特定类别的帖子?
类似的东西不起作用:
$posts = category::where('category_name','=',$categoryName)->posts;
有人能帮助我解决这个问题?我将非常感激,问候。
你为什么不只是传递的请求而不是名称$类别 - > ID?然后你可以直接传递id而不搜索实际的类别。您也可以决定使用findOrFail()来确保您检索存在或处理异常的类别。或者你也可以使用findMany([]),这将允许你同时检索多个类别。但首先我会尝试传递id而不是类别的名称。如何挑选类别? – jsrosas