Как использовать множественные отношения в laravel 5.4

В моем приложении я определяю отношения (профиль, пользователь, уровень), но когда я извлекаю данные, отображается ошибка (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>';
        }

можете ли вы показать вывод $users : dump($users); перед foreach, пожалуйста?

Vincent G 15.03.2019 13:04

это дамп пользователя prntscr.com/my9awu

Shahid 15.03.2019 13:06

я использую один фреймворк laravel

Shahid 15.03.2019 13:11

Пожалуйста, можете ли вы показать структуру миграции/таблицы для моделей?

Rwd 15.03.2019 13:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
62
1

Ответы 1

Обратите внимание, что ownTo принимает foreign_key в качестве первого параметра. Поэтому вы должны изменить модель профиля как

public function user()
{
    return $this->belongsTo(User::class, 'user_id');
}
public function level()
{
   return $this->belongsTo(Level::class, 'level_id');
}

Подробнее здесь

Другие вопросы по теме