Php Laravel:从表用户获取名称

Php Laravel:从表用户获取名称,php,laravel,pluck,Php,Laravel,Pluck,我需要在用户表中获取名称字段 我在控制器中的方法: public function reviewsactivity() { $activity = Activity::orderBy('id', 'DESC')->paginate(); $users = User::orderBy('id', 'ASC')->pluck('id', 'name'); return view('reviews.reviewsactivity', compact('activit

我需要在用户表中获取名称字段

我在控制器中的方法:

public function reviewsactivity()
{
    $activity = Activity::orderBy('id', 'DESC')->paginate();
    $users = User::orderBy('id', 'ASC')->pluck('id', 'name');
    return view('reviews.reviewsactivity', compact('activity', 'users'));
}
以及以下观点:

              @foreach($activity as $actividad)
                  <tr>
                      <td>{{ $actividad->description }}</td>
                      <td>{{ $actividad->subject_type }}</td>
                      <td>{{ $actividad->user->name }}</td>
                      <td>{{ $actividad->causer_type }}</td>
                      <td>{{ date('d-m-Y', strtotime($actividad->created_at)) }}</td>
                  </tr>
              @endforeach

假设您在
活动
表引用
用户
表中有
user\u id
,那么您可以在
活动
模型中定义
归属关系

活动模型

public function user(){
     return $this->belongsTo(User::class, 'user_id');
}
现在使用
with('user')


检查此处的快速加载文档

您需要首先检查活动是否有附加用户:

<td>{{ !is_null($actividad->user)?$actividad->user->name:'' }}</td>
{{!是否为空($actividad->user)?$actividad->user->name:''}

否则,您试图从非对象
null
获取属性
name
,这就是您获取消息错误的原因。

Activity
User
模型之间是否存在关系?请使用关系。如果每个活动都有一个用户,请使用belongsTo关系。
public function reviewsactivity()
{
    $activity = Activity::with('user')->orderBy('id', 'DESC')->paginate();
    $users = User::orderBy('id', 'ASC')->pluck('id', 'name');
    return view('reviews.reviewsactivity', compact('activity', 'users'));
}
<td>{{ !is_null($actividad->user)?$actividad->user->name:'' }}</td>