繁体   English   中英

Laravel:如何制作关系访问器

[英]Laravel: How to make relationship accessor

我在模型UserTasksReview模型有关系

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM