这个问题扩展了示例 Eloquent : Working With Pivot Tables Laravel 文档中提供。
这里的关系是一个User有许多可以关联的Role对象。在此扩展中,每个角色将与多个任务对象相关,从而为我们提供了第二级多对多关系。
使用 Eloquent ORM,访问用户相关任务的最简洁方法是什么?
具体来说,以下方法应返回一个task_ids数组
User::get_tasks($user_id)
最佳答案
use Illuminate\Database\Eloquent\Collection;
class User extends Eloquent {
// ... relation methods...
public function get_tasks($id)
{
$tasks = static::with('roles.tasks')->find($id)->roles->lists('tasks');
return (new Collection(array_flatten($tasks)))->unique();
}
}
关于php - Laravel Eloquent - 访问二级模型关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27892155/