我需要在用户表中获取名称字段
我在控制器中的方法:
@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
视图:
Trying to get property of non-object
(View: C:\laragon\www\tao\resources\views\reviews\reviewsactivity.blade.php)
“活动”表中的字段:causer_id
我有下一条日志:
@user_passes_test(lambda u: u.has_perm('sites.can_view_mgmt'))
答案 0 :(得分:0)
假设您在user_id
表中有activities
引用了users
表,那么您可以在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
检查急切加载文档答案 1 :(得分:0)
您需要首先检查活动是否具有附加用户:
[weak self]
否则,您试图从非对象static funcs
获取属性struct OrgAPIservice {
static func getOrganizations(sinceSyncToken: ...
completion:@escaping (_ orgsList: [Organization]?, _ error: AppError?) -> Void) {
apiProvider.request(.getOrganizations(...)) { result in
switch result {
case .success(let response):
case .failure(let error):
completion (nil, getAppErrorFromMoya(with: error))
}
}
}
}
,这就是为什么您收到消息错误的原因。