我有两种模式:
DropdownValue
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();
我会考虑任何解决方案,即使它不完全符合我的要求,所以请随时发表您的想法。 提前谢谢!
答案 0 :(得分:0)
作为我的情况的解决方案,我使用了这个实现:
$parent_values->map(function($item) {
return $item->childValues->pluck("value", "id")->toArray();
})->flatten();
比我想要的要复杂一点,但它现在有效。无论如何,我希望有人会觉得这很有用。
我也很高兴看到你的解决方案。 ;)