Laravel:从表用户获取名称

时间:2018-08-10 15:33:56

标签: php laravel pluck

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

我在控制器中的方法:

              @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'))  

2 个答案:

答案 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)) } } } } ,这就是为什么您收到消息错误的原因。