我有两个模型:
下拉值
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] 删除。
我来说两句