2015-03-18 2 views
0

Позвольте мне показать вам, что у меня есть.Как вставить вложенные объекты в шаблоны клинков

//Post Controller 

public function showPost(Post $post) 
{ 
$albums = $post->album()->with('photos')->get(); 
$comments = $post->comments()->where('approved', '=', 1)->get(); 
$this->layout->title = $post->title; 
$this->layout->main = View::make('home')->nest('content','posts.single', compact('post', 'comments','albums')); 
} 

MySQL предложение выполняется правильно

строку «select * from albumsalbums где. id = '{"id": 19, "title": "Post no 19", "read_more": "Lorem i' ... (длина = 786) строка 'select * from albums где albums. post_id = '19 «» (длина = 54) строка «выберите * из images где images. album_id в (» 4 «)» (длина = 57)

Я хочу, чтобы получить доступ к объекту фото в лезвии, все разбирает к шаблону, когда я пытаюсь получить фотографии

@foreach ($ albums-> фото как $ фото)

Неопределенное недвижимость: Il Luminate \ Database \ Eloquent \ Коллекция :: $ Фотографии (Вид:

// сообщение модель

public function album() 
    { 
     return $this->hasOne('Album'); 

    } 

// альбом модель

public function Photos(){ 

     return $this->hasMany('Image'); 
} 

ответ

0

Попробуйте

@foreach($albums->Photos()->get() as $photo) 
{{$photo->attribute}} 
@endforeach 

You необходимо вызвать функцию, которая содержит отношения, затем использовать

прибудет()

метод возвращает Красноречивый Collection, а затем перебирать его с петлей Еогеаспа.

+0

Спасибо за вашу помощь – FerchoCarcho

+0

Нет проблем, вы также можете попробовать создать аксессор для получения дополнительной информации перейдите [здесь] (http://laravel.com/docs/4.2/ красноречивые # Accessors-и-мутаторов) –

0
@foreach($albums as $album) 
    @foreach($album->Photos as $photo) 
    <p>{{ $photo->image }}</p> 
    @endforeach 
    @endforeach 

Thats Ответ на этот вопрос

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