我对Laravel很陌生。我知道我该怎么做,但不知道这是否是最好的方法。我有一个称为“流”的项目系统。它们每个都属于一个特定的“ FlowCategory”。我想使用控制器检索所有“ FlowCategory”项,然后检索其关联的子项(“流”),并将其传递给视图。
我想要的视图将显示每个流类别及其相关流的列表。
我已经设置了Eloquent,并且两个项目有关联。我已经在控制器中创建了一个foreach循环,并手动创建了一个数组,但是我保证它是否正确。
foreach ($cats as $cat) {
$catid = $cat->id;
$flows[$catid] = \App\FlowCategory::find($catid)->flows;
}
答案 0 :(得分:1)
好的,也许您要做类似的事情。但是只是为了刷新概念:
belongsTo
流类别hasMany
流。您的型号:
流类别:
public function flows()
{
return $this->belongsTo('App\Flow', 'category_id');
}
流量:
public function flowCategory()
{
return $this->hasMany('App\FlowCategory');
}
也就是说,如果要在视图中显示所有流类别及其各自的项目,则可以这样操作:
FooController.php
public function bar() {
// "with" is to avoid N+1 query problem
$flowsCategories = FlowCategory::with('flows')->get();
return view('yourview', compact('flowsCategories'));
}
然后,要在视图上显示items
,对于每个category
,您可以这样做:
@foreach($flowsCategories as $flowCategory)
@foreach($flowCategory->flows as $flow)
Flow: {{ $flow->name }} – Flow Category: {{ $flowCategory->name }}
@endforeach
@endforeach