Laravel Eloquent - Не возвращай отношения - PullRequest
0 голосов
/ 29 октября 2019

Я получил 2 модели. Модель файла:

class File extends Model
{
    public function user()
    {
        return $this->belongsTo('App\m_user', 'CODUSER');
    }

}

И модель m_user:

class m_user extends Model
{
    protected $table = 'm_users';

    public function file()
    {
        return $this->hasMany('App\File', 'id_user');
    } 
}

Таблицы следующие:

Files:
id, id_user, name

m_user:
CODUSER, email

Я хочу получить файлы у каждого пользователя. Я пытаюсь с этим кодом и не возвращает значения m_user, возвращает только значения файла:

$file= File::with(['user'])->first();
print_r($file);

Результат:

(...)

[original:protected] => Array
(
[id] => 79
[id_user] => 1
[name] => Sublime Text Build 3211 x64 Setup.exe
)

(...)

[relations:protected] => Array
(
[user] =>
)

Отношения в пустом! Мне нужно получить пользовательские данные в отношениях.

ОБНОВЛЕНИЕ: Я исправляю проблему, используя hasOne вместо ownTo в модели File.

1 Ответ

0 голосов
/ 29 октября 2019

Видя разъяснения, предоставленные вами в комментариях, я думаю, что вы делаете отношения в обратном направлении. Чтобы просмотреть файлы, с которыми связан пользователь, необходимо:

$user = m_user::findOrFail([user_id]);

$files = $user->file;

Совет. Модель пользователя, созданная не с учетом передовых методов, должна быть MUser.

Надеюсь, что это помогло

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...