【发布时间】:2015-07-12 17:29:01
【问题描述】:
在我的 Laravel 应用程序中,我有用户、朋友和组的概念。用户可以创建朋友并将其分类。
一个用户可以有很多朋友:
function friendsOfMine()
{
return $this->belongsToMany('App\User', 'helpers', 'user_id', 'helper_id')
->wherePivot('accepted', '=', 1);
}
一个组可以有多个用户:
public function groupMembers()
{
return $this->belongstoMany('App\User')->withTimestamps();
}
在将朋友添加到群组的 UI 中,我想显示用户朋友的完整列表,但排除那些已添加到群组的朋友。我的组控制器功能看起来像这样,虽然我很肯定我不在基地。
public function add($id)
{
$group = Group::findOrFail($id);
$helpers = $group->groupMembers;
$id = $helpers->lists('id');
$invitees = $this->user
->friendsOfMine()
->where('helper_id', '!=', $id)
->Paginate(5);
return view('groups.add', compact('group','helpers','invitees'));
}
理想情况下,我喜欢某种写作方式:
$helper = $group->friendsOfMine->not->groupMembers->Paginate(5);
是否可以使用来自两个不同模型的函数来过滤数据?
【问题讨论】:
标签: php laravel eloquent laravel-5