【问题标题】:How to display the name of the user instead of id. Laravel如何显示用户名而不是 id。拉拉维尔
【发布时间】:2020-07-22 18:03:20
【问题描述】:

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

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

所以这里是名为“Remark”的模型

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 users 因为我尝试在视图上添加 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

感谢您的宝贵时间

【问题讨论】:

  • 我收到了这个错误Call to a member function user() on integer

标签: laravel eloquent


【解决方案1】:

首先,你需要改变你的关系如下。如果您没有通过foreign key,那么它假定您在表中有外键 as(user_id)。但您在表中有 recieverID。所以,你需要定义它。

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

现在你可以添加刀片文件了。

<td>{{$remark->user->first_name}}</td>

【讨论】:

  • 哇,这很有效,非常感谢你,请问是否有可能知道为什么会修复它?
猜你喜欢
  • 1970-01-01
  • 2020-02-16
  • 2015-03-28
  • 1970-01-01
  • 2018-11-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
相关资源
最近更新 更多