您好,如标题所示,我不确定为什么我的代码没有显示用户的“名字”,但是它仅显示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
谢谢您的时间
答案 0 :(得分:3)
首先,您需要如下更改您的关系。如果您未通过foreign key
,则假定您在表中具有外键为( user_id )。但您在表中有 recieverID 。因此,您需要对其进行定义。
public function user(){
return $this->belongsTo(User::class,'recieverID','id');
}
现在您可以将其添加为刀片文件。
<td>{{$remark->user->first_name}}</td>