嵌套关系 Laravel Eloquent 查询
nested relationship Laravel Eloquent query
我有 3 个模型:Pizzerie、Pizze、Ingredients 每个都有自己的关系
class Pizzerie extends Model {
protected $table = 'pizzerie';
public function pizze()
{
return $this->hasMany('App\Pizze', 'pizzerie_id');
}
}
class Pizze extends Model {
protected $table = 'pizze';
public function ingredienti()
{
return $this->belongsToMany('App\Ingredienti', 'pizze_ingredienti');
}
public function pizzeria()
{
return $this->belongsTo('App\Pizzerie');
}
}
class Ingredienti extends Model {
protected $table = 'ingredienti';
public function pizze()
{
return $this->belongsToMany('App\Pizze', 'pizze_ingredienti');
}
}
我正在寻找允许我像这样在我的视图中循环的查询
@foreach($data as $pizzeria)
<p>{{ $pizzeria->name }} Has pizze: </p>
@foreach($pizzeria as $pizze)
<p>{{ $pizza->name }} Has ingredients: </p>
<ul>
@foreach($pizza as $ingredient)
<li>{{ $ingredient->name }}</li>
@endforeach
</ul>
@endforeach
@endforeach
不知道如何得到它:/
试试这个,它会在每个 foreach 循环中得到下一个关系 Collection。
@foreach($data as $pizzeria)
<p>{{ $pizzeria->name }} Has pizze: </p>
@foreach($pizzeria->pizze as $pizze)
<p>{{ $pizza->name }} Has ingredients: </p>
<ul>
@foreach($pizze->ingredienti as $ingredient)
<li>{{ $ingredient->name }}</li>
@endforeach
</ul>
@endforeach
@endforeach
我无法对 Margus Pala 的回答发表评论 :( 但您的查询应该像
$data = \App\pizzerie::with('pizze. ingredienti')->get();
由于预加载问题,这是一个重要的问题(循环中的查询过多)
我有 3 个模型:Pizzerie、Pizze、Ingredients 每个都有自己的关系
class Pizzerie extends Model {
protected $table = 'pizzerie';
public function pizze()
{
return $this->hasMany('App\Pizze', 'pizzerie_id');
}
}
class Pizze extends Model {
protected $table = 'pizze';
public function ingredienti()
{
return $this->belongsToMany('App\Ingredienti', 'pizze_ingredienti');
}
public function pizzeria()
{
return $this->belongsTo('App\Pizzerie');
}
}
class Ingredienti extends Model {
protected $table = 'ingredienti';
public function pizze()
{
return $this->belongsToMany('App\Pizze', 'pizze_ingredienti');
}
}
我正在寻找允许我像这样在我的视图中循环的查询
@foreach($data as $pizzeria)
<p>{{ $pizzeria->name }} Has pizze: </p>
@foreach($pizzeria as $pizze)
<p>{{ $pizza->name }} Has ingredients: </p>
<ul>
@foreach($pizza as $ingredient)
<li>{{ $ingredient->name }}</li>
@endforeach
</ul>
@endforeach
@endforeach
不知道如何得到它:/
试试这个,它会在每个 foreach 循环中得到下一个关系 Collection。
@foreach($data as $pizzeria)
<p>{{ $pizzeria->name }} Has pizze: </p>
@foreach($pizzeria->pizze as $pizze)
<p>{{ $pizza->name }} Has ingredients: </p>
<ul>
@foreach($pizze->ingredienti as $ingredient)
<li>{{ $ingredient->name }}</li>
@endforeach
</ul>
@endforeach
@endforeach
我无法对 Margus Pala 的回答发表评论 :( 但您的查询应该像
$data = \App\pizzerie::with('pizze. ingredienti')->get();
由于预加载问题,这是一个重要的问题(循环中的查询过多)