Laravel 5:有没有办法在单个查询中列出来自多个模型的特定关系属性的所有值?

艾斯

我有两个模型:

下拉值

use Illuminate\Database\Eloquent\Model;

class DropdownValue extends Model
{
    protected $table = "dropdown_values";
    public $timestamps = false;

    protected $fillable = [
        "field_id",
        "value",
    ];

    public function childValues()
    {
        return $this->belongsToMany("\\App\\Models\\ChildValue", "value_child", "parent_value_id", "child_value_id");
    }
}

ChildValue模型:

class ChildValue extends Model
{
    protected $table = "children_values";
    public $timestamps = false;

    protected $fillable = [
        "value"
    ];

    public function parentValue()
    {
        return $this->belongsToMany("\\App\\Models\\DropdownValue", "value_child", "child_value_id", "parent_value_id");
    }
}

我想知道是否有一种方法可以使用方法或使用替代方法一次childValues从多个DropdownValue模型中获取所有值,lists()但不使用任何循环结构,如果可能,只使用单行解决方案。像这样的东西:

$parent_values = DropdownValue::with("childValues")->get();
$child_values = $parent_values->lists("childValues.value")->all();

我会考虑任何解决方案,即使它不能完全满足我的要求,也请随时发表您的想法。先感谢您!

艾斯

作为我的情况的解决方案,我使用了这个实现:

$parent_values->map(function($item) {
        return $item->childValues->pluck("value", "id")->toArray();
    })->flatten();

比我想要的要复杂一点,但它目前有效。无论如何,我希望有人会发现这很有用。

我也很高兴看到您的解决方案。;)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有办法在laravel模型中访问关系属性?

有没有办法列出来自Python的所有使用中的套接字?

laravel 7 模型有没有办法获取所有列的列表?

有没有办法在laravel中转换关系表属性?

Laravel 7中有没有办法访问遥远的关系?

有没有办法在 Laravel 中解释多参数查询字符串?

有没有办法在 DB::raw 中插入值?Laravel

Laravel 有没有办法基于两列来建立关系 belongsTo?

有没有办法编辑多对多关系船而无需在Laravel中附加-分离

Laravel-有没有办法结合

在 Laravel 中插入/更新模型时,有没有办法自定义 JSON 序列化?

有没有办法在Laravel Dusk中断言当前URL值?

有没有办法让Netbeans导航到Laravel 5 Facade类?

有没有办法在laravel中(管理)添加毫秒(到now())?

有没有办法在laravel中随机化css类

有没有办法在Laravel 5.8中测试雄辩的旁观者?

有没有办法阻止phpunit中的laravel文件被Trajon病毒感染

Laravel-有没有办法获得所有正在运行的中间件?

有没有办法使用Laravel查询生成器重写此原始SQL查询

有没有办法在使用 Laravel DB:Query Builder 时获取模型对象而不是 stdClass 对象?

有没有办法将多个输入推送到 Laravel 中的同一个 Db 列中?

有没有办法改变 Laravel 加密算法,使其针对相同的字符串生成相同的值?

Laravel,有没有办法将资源/视图路径中的代码包含到控制器中?

有没有办法在 Laravel 中取两个日期之间的数字并用它减去

有没有办法将工作委托给Laravel中的另一个动作?

有没有办法在laravel中加入两个集合?

有没有办法检查Laravel日程安排是否正在运行?

有没有办法自动测试Laravel代码的质量?

如何阻止Laravel缓存ENV文件,有没有办法?