通过外键显示数据

时间:2018-01-20 23:21:17

标签: laravel laravel-5 eloquent laravel-5.3

我试图通过关系和外键获取一些数据,但却陷入困境。

我有一个用户可以评论的Batsmen,评论也可以由用户编辑,评论有自己的页面以及删除或编辑评论的选项。这就是我的问题所在,我试图显示击球手的国籍,但只能找回他的国籍的ID而不是国家的名字。

这是我的表格

Batsmen :ID,姓名,生物,国籍_ID, 国籍:ID,country_name, 用户 ID,姓名, 评论:ID,评论,Batsmen_ID,User_ID

我的关系

评论:

public function batsmen(){
    return $this->belongsTo('App\Batsmen');
}
public function author()
{
    return $this->belongsTo('App\User','user_id');
}

控制器:

   public function show($id)
    {
        $comment = Comment::find($id);

        return view('comments.show')->with('comment', $comment);
    }

查看:

<h4>{{$comment->batsmen->Nationality_id}}</h4>

那我怎样才能显示国家名称而不是nationality_ID?

3 个答案:

答案 0 :(得分:0)

试试这个

public function show($id)
{
   $comment = Comment::with('batsmen')->find($id);

   return view('comments.show')->with('comment', $comment);
}

答案 1 :(得分:0)

relationship模型类上创建另一个Batsman方法为 -

public function nationality(){
     return $this->belongsTo('App\Nationality','Nationality_id');
}

然后在你看来 -

<h4>{{$comment->batsmen->nationality->country_name}}</h4>

答案 2 :(得分:0)

您需要添加bastman和国籍

之间的关系
class Comment extends Model
{
    public function nationality(){

       return $this->belongsTo('App\Nationality',Nationality_id,id);
   }
}

然后你可以很容易地得到他的国家

<h4>{{$comment->batsmen->Nationality->country_name}}</h4>