2015-04-27 5 views
1

У меня есть 3 модели: Pizzerie, Pizze, ингредиенты каждый из них имеет свои собственные отношениявложенная отношения Laravel Eloquent запрос

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 

не могу понять, как получить это:/

ответ

0

Попробуйте это, он получит следующее соотношение коллекцию в каждой из петель Foreach.

@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 
+0

Что я должен запрашивать? $ Data = \ App \ pizzerie :: all();? – user3106888

+0

Правильно, вот как вы получаете все пиццерии. –

0

Я не могу комментировать, чтобы ответы Маргуса Pala в :(но ваш запрос хотел

$data = \App\pizzerie::with('pizze. ingredienti')->get(); 

из-за нетерпеливые проблем загрузки, это важная проблема (слишком много запросов в цикле)

Eager loading in documentation

Смежные вопросы