2015-12-01 4 views
1

Я новичок в laravel и стараюсь правильно понять, как показать на мой взгляд мою картину моих отношений.Laravel 4.2 Полиморфное отношение с таблицами изображений

Например, у меня есть таблица для категории, публикации, пользователя и изображения, и мне нужна помощь.

Для моей БД это нормально с таблицей изображения как учебник полиморфного отношения на Laravel документы. (Такой же, как док)

В моей модели образа у меня полиморфного отношения, и это все в порядке

class Image extends \Eloquent { 

    protected $guarded = ['id' , 'created_at']; 

    public function imageable(){ 

     return $this->morphTo();; 
    } 
} 

I необходимо связать изображение на моей другой категории

class Category extends \Eloquent { 

     protected $guarded = ['id' , 'created_at']; 

     public function posts(){ 
      return $this->hasMany('Post'); 
     } 

     public function images(){ 

      return $this->morphMany('Image','imageable'); 
     } 

     public function parent(){ 

      return $this->belongsTo('Category','parent_id'); 
     } 

     public function children(){ 

      return $this->hasMany('Category','parent_id'); 
     } 

     public function getImportantPost(){ 

      return $this->hasOne('Post')->latest(); 
     } 

     public function latestPost(){ 
      return $this->hasOne('Post')->latest(); 
     } 
} 

После этого в моей HomeController на моей домашней странице у меня есть запрос на 1 конкретной должности, чтобы показать с конкретная категория

//show headliner post specific category 
$headliner = Category::with(['posts' => function($query){ 
    $query->orderBy('published_at', 'DESC')->take(1)->get(); 
}])->where('id' , '=' , '5')->get(); 

На моем взгляде домой индекса У меня есть Еогеасп $ хедлайнер, как этот

<div class="widget-area-4"> 
     <div class="widget kopa-article-list-widget"> 
      <ul class="clearfix"> 

      @foreach($headliner as $headline) 
       <li> 
        <article class="entry-item clearfix"> 
         <div class="entry-thumb"> 
          <img src="{{$headline}}" alt="" /> 
          <span class="category-title">{{$headline->name}}</span> 
         </div> 
         <!-- entry-thumb --> 

         <div class="entry-content"> 
          <header> 
           <h5 class="entry-title"><a href="#">{{$headline->latestPost->name}}</a></h5> 
           <span class="entry-date"><i class="fa fa-calendar"></i> {{$headline->latestPost->published_at}}</span> 
           <span class="entry-categories">Auteur: <a href="#"></a></span> 
           <span class="entry-comments"><a href="#">{{$headline->latestPost->counts_comments}}</a><span></span></span> 
          </header> 
          <p>{{str_limit($headline->latestPost->content, 600 ,' ...')}}</p> 
          <a class="more-link" href="#">Voir plus</a> 
         </div> 
         <!-- entry-content --> 
        </article> 
        <!-- entry-item --> 
       </li> 
          @endforeach 
      </ul> 
     </div> 
     <!-- kopa-article-list-widget --> 
    </div> 

Но я не знаю, как показать мое изображение в моем Еогеаспе, потому что я свой пост, связанный с потому что это нормально, но когда я пытаюсь

{{$headline->images->path}} 

(путь - это мои записи в моей БД) У меня есть ошибка.

Благодарим за помощь.

+0

Первый вопрос - Что такое ошибка? – Jonnus

ответ

1

Как вы использовали morphMany() определить изображений отношения к категории, загружая это отношение даст вам коллекцию изображений объектов. Поэтому, по вашему мнению, $ headline-> образы относятся к этой коллекции, а не к одному изображению. В коллекции нет атрибута , поэтому ошибка.

Вам нужно перебирать свою коллекцию изображений в представлении, а затем визуализации каждого изображения отдельно, например .:

@foreach($headline->images as $image) 
    <img src="{{ $image->path }}" /> 
@endforeach 
+0

отлично работает GG thx vrey – nicolassiuol

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