通过外键显示数据

Showing data through foreign keys

我正在尝试通过关系和外键获取一些数据,但遇到了麻烦。

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

这是我的表格

击球手: ID, Name, bio, Nationality_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?

试试这个

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

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

在您的 Batsman 模型 class 上创建另一个 relationship 方法作为 -

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

然后在你看来-

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

你需要添加bastman和国籍

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

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

那你就可以轻松搞定他的国家

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