[英]Laravel: How to make relationship accessor
我在模型UserTasks
与Review
模型有关系
public function reviews()
{
return $this->hasMany(Review::class,'task_id');
}
我正在使用with
加载评论
UserTasks::with('reviews');
我想使用UserTasks
模型中的访问器格式化reviews
关系输出
public function getReviewsAttribute($reviews)
{
// FILTER AND FORMAT RELATION OUTPUT
foreach ($reviews as &$review) {
if ($review['active'] == true) {
$review['cid'] = bcrypt($this->cid);
$reviews = [$review];
}
}
return $reviews;
}
不幸的是,这不起作用
使用with
加载的关系不注意访问器
我读到这几乎是不可能的,但也许有人知道使用访问器格式化加载关系的方法
如果你想要UserTasks模型中的所有评论,你可以试试这个
public function getReviewsAttribute($reviews)
{
$reviews = $this->reviews;
foreach ($reviews as $rewiew) {
// DO SOMETHING WITH REVIEWS
}
return $reviews;
}
通过$reviews = Review::all();
您将获得所有评论,您可以做任何您想做的事情。
不要忘记在模型顶部添加命名空间,例如 use Review;(给出你的命名空间)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.