如何使用点语法遍历laravel中的模型关系

本·罗

我正在尝试遍历复杂的雄辩模型关系/属性,并且我想使用一个简单的点结构来遍历这一点,类似于如何遍历数组 Arr::get()

例子:

$data = [
  'foo' => [
    'bar' => [
      'key' => 'value'
    ]
  ]
];
$value = Arr::get($data, 'foo.bar.key'); // returns 'value'

我试过使用

$value = Arr::get($model, 'relation.subrelation.attribute')

但是,这失败了,即使雄辩的模型支持ArrayAccess,aways也会返回null。

laravel是否有简单的方法来实现这一目标?

本·罗

对于所有想知道的人,我设法通过修改arr :: pull()函数来专门针对模型来找到解决方案:

public static function traverse($model, $key, $default = null)
{
    if (is_array($model)) {
        return Arr::get($model, $key, $default);
    }


    if (is_null($key)) {
        return $model;
    }

    if (isset($model[$key])) {
        return $model[$key];
    }

    foreach (explode('.', $key) as $segment) {
        try {
            $model = $model->$segment;
        } catch (\Exception $e) {
            return value($default);
        }
    }

    return $model;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel中的关系模型?

来自分类Dev

Laravel中的模型关系

来自分类Dev

Laravel 模型中的关系

来自分类Dev

Laravel:如何使用多态关系雄辩模型从表中轻松获取值?

来自分类Dev

Laravel:模型中的动态关系

来自分类Dev

Laravel中的模型关系问题

来自分类Dev

Laravel中的反向模型关系

来自分类Dev

Laravel:模型中的动态关系

来自分类Dev

如何在Laravel 5中为此关系创建模型?

来自分类Dev

Laravel雄辩的模型如何从关系表中获取数据

来自分类Dev

如何在laravel模型中定义多对多关系?

来自分类Dev

laravel 5.1:如何从模型中获取嵌套关系?

来自分类Dev

如何在Laravel中建立3模型之间的关系?

来自分类Dev

Laravel Eloquent:如何从与函数模型的关系中添加条件

来自分类Dev

如何在邮递员中测试laravel模型关系

来自分类Dev

如何在 Laravel 中返回带有他的关系的模型?

来自分类Dev

如何在laravel中创建3个模型之间的关系?

来自分类Dev

如何使用 tinker 在 Laravel 模型中找到逆关系

来自分类Dev

如何使用模型中的数据作为条件查询关系?

来自分类Dev

laravel如何在会话中存储模型和关系ID,以便再次获取关系

来自分类Dev

在Laravel中处理模型中的关系

来自分类Dev

在Ruby中遍历具有复杂关系的模型数组

来自分类Dev

Laravel 4模型关系如何工作?

来自分类Dev

Laravel中与同一模型的多重关系

来自分类Dev

表格中的嵌套模型关系-Laravel

来自分类Dev

Laravel中关系模型的返回计数

来自分类Dev

Laravel 在 JSON 中返回模型关系

来自分类Dev

Laravel-使用AngularJS访问关系模型

来自分类Dev

在 Laravel 中使用模型关系获取数据

Related 相关文章

热门标签

归档