Laravel:从 table 用户获取名称
Laravel: get name from table users
我需要获取用户 table
中的名称字段
我在控制器中的方法:
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
Activitytable中的字段:causer_id
我有下一条日志:
Trying to get property of non-object
(View: C:\laragon\www\tao\resources\views\reviews\reviewsactivity.blade.php)
假设您在 activities
table 中有 user_id
引用 users
table 那么您可以在 [=16= 中定义 belongsTo
关系] 模特
Activity 型号
public function user(){
return $this->belongsTo(User::class, 'user_id');
}
现在使用 with('user')
通过预先加载获取 Activity
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'));
}
在此处检查预加载文档https://laravel.com/docs/5.6/eloquent-relationships#eager-loading
您需要先检查 activity 是否有附加用户:
<td>{{ !is_null($actividad->user)?$actividad->user->name:'' }}</td>
否则您正试图从非对象 null
获取属性 name
,这就是您收到消息错误的原因。
我需要获取用户 table
中的名称字段我在控制器中的方法:
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
Activitytable中的字段:causer_id
我有下一条日志:
Trying to get property of non-object
(View: C:\laragon\www\tao\resources\views\reviews\reviewsactivity.blade.php)
假设您在 activities
table 中有 user_id
引用 users
table 那么您可以在 [=16= 中定义 belongsTo
关系] 模特
Activity 型号
public function user(){
return $this->belongsTo(User::class, 'user_id');
}
现在使用 with('user')
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'));
}
在此处检查预加载文档https://laravel.com/docs/5.6/eloquent-relationships#eager-loading
您需要先检查 activity 是否有附加用户:
<td>{{ !is_null($actividad->user)?$actividad->user->name:'' }}</td>
否则您正试图从非对象 null
获取属性 name
,这就是您收到消息错误的原因。