В моем приложении я определяю отношения (профиль, пользователь, уровень), но когда я извлекаю данные, отображается ошибка (Trying to get property 'email' of non-object), как я могу решить эту проблему, спасибо заранее.
это модель пользователя
public function profile()
{
return $this->hasOne(Profile::class, 'user_id');
}
Модель профиля
public function user()
{
return $this->belongsTo(User::class, 'id');
}
public function level()
{
return $this->belongsTo(Level::class, 'id');
}
Модель уровня
public function profile()
{
return $this->hasOne(Profile::class, 'level_id');
}
Это контроллер ProfileController
$users = Profile::with(['user', 'level'])->where('is_bd_partner', 'Yes')->get();
foreach ($users as $key => $value)
{
echo $value->first_name.'<br>';
echo $value->last_name.'<br>';
echo $value->user->email.'<br>';
echo $value->level->level.'<br>';
}
это дамп пользователя prntscr.com/my9awu
я использую один фреймворк laravel
Пожалуйста, можете ли вы показать структуру миграции/таблицы для моделей?






Обратите внимание, что ownTo принимает foreign_key в качестве первого параметра.
Поэтому вы должны изменить модель профиля как
public function user()
{
return $this->belongsTo(User::class, 'user_id');
}
public function level()
{
return $this->belongsTo(Level::class, 'level_id');
}
Подробнее здесь
можете ли вы показать вывод $users : dump($users); перед foreach, пожалуйста?