如何显示用户名而不是ID。拉拉韦尔

时间:2020-07-22 09:55:08

标签: laravel eloquent

您好,如标题所示,我不确定为什么我的代码没有显示用户的“名字”,但是它仅显示ID,我尝试了很多其他方法来解决此问题,但是只是laravel的初学者,所以我认为最好是现在寻求帮助

稍微说明一下,“ recieverID”字段是表Users的外键,显示用户的ID

这就是名为“备注”的模型

class Remark extends Model
{
 protected $guarded =[];

public function user(){
    return $this->belongsTo(User::class);
}
}

这是备注控制器

public function index()
{

    if(Auth::guard('admin')->check())
    {
        $users = User::all();
        $remarks = Remark::latest()->get();
    return view('admin.remark.index', compact('users'),compact('remarks'));
    }

它下面有更多代码,但我只需要这部分代码,我添加了$ users和compact用户,因为我试图在视图上添加2个foreach循环以查看其外观,但由于它的工作方式不尽如人意我认为可能

这是我要显示名称而不是ID的视图

@foreach($remarks as $remark)
                      <tr>
                        <td>{{$remark->recieverID->user->first_name}}</td>
                        <td>{{$remark->title}}</td>
                        <td>{{$remark->subject}}</td>
                        <td>{{$remark->message}}</td>
                        <td>{{$remark->sender}}</td>
                      </tr>
                      @endforeach

谢谢您的时间

1 个答案:

答案 0 :(得分:3)

首先,您需要如下更改您的关系。如果您未通过foreign key,则假定您在表中具有外键为( user_id )。但您在表中有 recieverID 。因此,您需要对其进行定义。

public function user(){
    return $this->belongsTo(User::class,'recieverID','id');
}

现在您可以将其添加为刀片文件。

<td>{{$remark->user->first_name}}</td>
相关问题