php - Laravel Eloquent - 访问二级模型关系

标签 php laravel model eloquent object-relational-model

这个问题扩展了示例 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/

相关文章:

php - 在 CodeIgniter 中删除购物车中字符的限制

内存使用

java - 用于创建简单 3D 模型的库,例如 SketchUp

CakePHP 用相同的模型更新记录 ID 的多行

php - Laravel Cache Facade - set 与 put

c# - 如何在c#中反序列化Json文件以插入表中

php - HTML 净化器 : Converting <body> to <div>

php - 避免 php 和 javascript 之间的重复代码

php - 检查一个数组是否可以放入另一个数组

php - laravel插入查询中绑定(bind)参数