laravel变形关系访问模型数据

时间:2019-08-24 08:16:23

标签: laravel laravel-5 eloquent

我的评论模型与Blog和Hotel有变体的关系,这里我正在获取有关酒店的所有用户评论,现在如何访问刀片中的名称,描述等酒店详细信息?

 $hotelComments = Comment::whereHasMorph(
        'commentable',
        Hotel::class,
        )->whereUserId(\Auth::id())->get();

刀片:

     @foreach ($hotelComments as $hc)
        <tr>
            <td class="">{{ $hc->body }}</td>
            <td class="">{{ $hc-> ??? hotel name ??? }}</td>

          </tr>
        @endforeach

博客和酒店:

 public function comments(){
        return $this->morphMany(Comment::class, "commentable");
    }

评论模型:

  public function commentable(){
        return $this->morphTo();
    }

1 个答案:

答案 0 :(得分:0)

您可以在评论模型上使用属属关系

 public function hotel()
    {
        return $this->belongsTo(Hotel::class,'commentable_id');
    }

在您的控制器中:

public function index(){
   $comments = Comments::where('commentable_type','App\Hotels')->with('hotel')->get();
   foreach($comments as $comment){
      dd($comment->hotel)
   }   
}