Laravel 5.1
获取buttons
button_sets
的所有template_id
,其中$id
= $id
(modules
在调用时传递给控制器方法)
(两个选项)(1)传递两个数组, buttons
和modules
。 (2)将带有buttons
和id
的多维数组作为基础数据的两个键。根据模板的modules
检索这两个选项。
name | type
-----------------------
id | int(10)
name | varchar(255)
header | varchar(255)
templates
name | type
-----------------------
id | int(10)
name | varchar(255)
button_sets
name | type
-----------------------
id | int(10)
name | varchar(255)
templates_id | int(10) (FK with 'id' on 'templates')
modules_id | int(10) (FK with 'id' on 'modules')
buttons
name | type
-----------------------
id | int(10)
name | varchar(255)
button_sets_id | int(10) (FK with 'id' on 'button_sets')
class ButtonSet extends Model
{
public function buttons()
{
return $this->hasMany('App\Button', 'button_sets_id', 'id');
}
}
public function show($id)
{
switch ($id) {
case 1:
$mod = Module::all()->toArray();
$buttons = ButtonSet::with('buttons')->get()->toArray();
$modules = $this->array_merge_recursive_distinct($mod, $buttons);
return view('index', compact('modules'));
}
}
$buttons = ButtonSet::with('buttons')->get()->toArray();
目标1
正如您在Controller方法中看到的,我尝试使用Eager Loading(认为这是要走的路),并且能够使用以下代码使用其按钮成功检索所有button_sets的多维数组:
where template_id = $id
。我仍然需要说modules
... 我该怎么做?
目标2 [求助]
然后我尝试使用this将上面的数组与Trying to get property of non-object
数组合并,这非常好用。 虽然这导致了一个没有多少嵌套数组的多维数组,但我仍然无法说我现在无法从视图中提取任何数据,使用上面的foreach循环,得到错误 已成功从合并数组中检索数据。 x_min
。 这里需要更改什么?
有没有更简单的方法来实现这一切?
我试图围绕多态关系进行思考,但我对PHP,OOP和Laravel这么新,这超出了我的理解......
如果您需要更多数据来了解我的挑战,请告诉我。
非常感谢有人能指出我正确的方向!