簡體   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