我正在使用Laravel 5.7,并且具有以下表格
类别
id | category_name
post_categories
id | category_id | post_id | some other fields
帖子
id | post_title
我在模型类别中属于许多关系
public function post(){
return $this->belongsToMany(Post::class,'post_categories','category_id','post_id')
->withPivot('col2', 'col3','col4');
}
$response=Category::with('post')->get();
这将返回预期的结果,但是现在我不需要响应中的类别详细信息,因为我知道category_id,并且可以避免响应中的类别详细信息,因此可以在数据透视模型中声明关系
我的目的是按类别ID检索所有帖子
答案 0 :(得分:2)
您可以在“类别”上使用select()
函数来删除不必要的列。
请注意,类别表的'id'很重要,因为它在数据透视表中用作外键。
// this will only get the id of the category
// and all the post and pivot data.
$response = Category::select('id')->with('post')->get();