У меня есть таблица users
и таблица photos
. Таблица фотографий была связана с таблицей пользователей (и некоторыми другими таблицами) через imageable_id и imageable_type. Все работает нормально для этого.
Теперь я хотел вернуть массив к представлению, которое содержит: имя пользователя, адрес электронной почты пользователя, описание пользователя и путь к изображению пользователя (из таблицы фотографий).
Я создал array
, который содержит коллекцию массивов из данных каждого пользователя, а затем передал это array
в представление:
$user_admins = array();
$admin_id = 1;
$admins = User::where('role_id', $admin_id)->orderBy('name', 'asc')->get();
foreach($admins as $admin)
{
$photo = Photo::where('imageable_id', $admin->id)->where('imageable_type', 'App\User')->first();
$admin_data = array('name'=>$admin->name, 'email'=>$admin->email, 'desc'=>$admin->desc, 'path'=>$photo->path);
array_push($user_admins, $admin_data);
}
// return $user_admins;
//Return View
return view('pages/home_admin', compact('user_admins'));
Однако напри просмотре страницы я получаю Trying to get property of non-object
, который указывает на мою:
<h5 class="card-title">{!!$admin->name!!}</h5>
Как я могу получить доступ к данным этого пользователя на моем просмотре?
Большое спасибо!
Обновление
Я также пытался:
foreach($admins as $admin)
{
$admin_data['name'] = $admin['name'];
$admin_data['email'] = $admin['email'];
$admin_data['desc'] = $admin['desc'];
$photo = Photo::where('imageable_id', $admin->id)->where('imageable_type', 'App\User')->first();
$admin_data['path'] = $photo['path'];
// $admin_data = array('name'=>$admin->name, 'email'=>$admin->email, 'desc'=>$admin->desc, 'path'=>$photo->path);
array_push($user_admins, $admin_data);
}
// return $user_admins;
//Return View
return view('pages/home_admin', compact('user_admins'));
Все еще получена та же ошибка: <</p>
Код вида:
@foreach ($user_admins as $admin)
<div class="card text-center shadow-sm ml-3" style="width: 18rem;">
<div class="card-body">
<img src="../user_images/img_defaultprofile.png" class="mb-3" style="height: 10vh;" alt="" srcset="">
<h5 class="card-title">{!!$admin->name!!}</h5>
<h6 class="card-subtitle mb-2 text-muted">{!!$admin->email!!}<h6>
<p class="card-text">{!!$admin->desc!!}</p>
<a href="#" class="btn btn-info">View Profile</a>
</div>
</div>
@endforeach