2016-01-29 60 views
0

我有一个laravel查询如下的一个:如何操纵laravel对象

$campaign = Campaign::with(array('tracks.flights' => function($q) use ($dates) 
      { 
       $q->whereRaw("flights.start_date BETWEEN '". $dates['start']."' AND '".$dates['end']."'")->orderBy('start_date') 
       ->with('asset') 
       ->with('comments'); 
      } 
     )) 
     ->with('tracks.group') 
     ->with('tracks.media') 
     ->orderBy('created_at', 'desc') 
     ->find($id); 

我很新的laravel而现在该查询的响应返回的所有数据需要包括与评论来自DB的注释属性。

我想要实现的是操纵注释对象,因此它包含users表中的用户名,因为注释表仅具有user_id作为属性。

我该如何做到这一点?我对laravel很新。

+0

PHP也是新手,我不太确定PHP如何处理这个 – Leon

回答

2

Comment模型必须与User模型的关系,如:现在,当你迭代的评论,你能够做$comment->user->name或在您的情况下,它会是这样的

public function user() 
{ 
    return $this->belongsTo('App\User'); 
} 

@if(!$campaign->tracks->flights->isEmpty()) 
    @foreach($campaign->tracks->flights as $flight) 
     @if(!$flight->comments->isEmpty()) 
      @foreach($flight->comments as $comment) 
       {!! $comment->user->name !!} 
      @endforeach 
     @endif 
    @endforeach 
@endif 

一旦你能做到这一点,下一步就是通过雄辩来理解急切的负载。