Return 集合而不是 Eloquent 模型中的关系

Return collection instead of relationship in Eloquent Model

在我的模型中,我有一个集合,我正尝试在我的模型中 return 它,而不是关系对象。

这样我就可以打电话给 $user->items 并获取该集合。

在模型中,函数如下所示:

class User extends Model {

 public function channelsAttribute() {
     $name = Company::where('id', $this->id)->first()
     $items = Item::where('company_id', $name)->get();

     return $items;
 } 
}

Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation

因为有两种方法,我找不到使用关系的方法;但是 $items return 的值集合。

我该怎么办?

你没有正确调用方法,而不是

function channelsAttribute()

你需要做的

function getChannelsAttribute()