Sag*_*tam 0 php model relationship laravel
我遵循数据结构,
产品
产品审核
关系是一对多,即一个产品有很多评论.
我想要的是加载所有经过验证评论的产品(即状态为真的评论)
我试过跟着,
$products = Product::with('reviews')->get();
Run Code Online (Sandbox Code Playgroud)
但是当我迭代$products访问$ product-> reviews等评论时,会显示所有评论(甚至是状态错误评论).
任何建议都表示赞赏.
您可以向with函数添加闭包以添加额外的过滤.
Product::with([
'reviews' => function ($query) { $query->where('status', true); }
])->get();
Run Code Online (Sandbox Code Playgroud)
另一种选择是为产品模型添加过滤关系函数.
public function verifyedReviews() {
return $this->reviews()->where('status', true);
}
Run Code Online (Sandbox Code Playgroud)
现在在你的with子句中调用这个函数.
Product::with('verifyedReviews')->get();
Run Code Online (Sandbox Code Playgroud)