Laravel 5 осталось Присоединиться к отношениюPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel 5 осталось Присоединиться к отношению

Сообщение Anonymous »

У меня есть две таблицы базы данных: пользователи и студенты. Студент является пользователем, но имеет дополнительные данные (адрес). У меня есть отношение ownTo('User') в моей модели Student.

Если я теперь запросю модель Student следующим образом:

Код: Выделить всё

$this->student
->with('user')
->first();
Я получаю такой результат:

Код: Выделить всё

{
"id": 1,
"user_id": 12,
"street": "Petershof",
"house_number": "3787",
"postal_code": "8161 NM",
"city": "Tienhoven",
"user": {
"id": 12,
"email": "bvierdag@yahoo.nl",
"first_name": "Nathan",
"last_name": "van Dijk",
"name": "Nathan van Dijk"
}
}
Однако я хочу сгладить результат, чтобы пользовательские поля находились в родительском объекте (Студент). Вот так:

Код: Выделить всё

{
"id": 1,
"user_id": 12,
"street": "Petershof",
"house_number": "3787",
"postal_code": "8161 NM",
"city": "Tienhoven",
"email": "bvierdag@yahoo.nl",  // = user field
"first_name": "Nathan",        // = user field
"last_name": "van Dijk",       // = user field
"name": "Nathan van Dijk"      // = user field
}
Я пытался использовать leftJoin('users', 'user_id', '=', 'users.id') вместо with(), но затем теряю свой виртуальный атрибут 'name' (определенный в модели пользователя), а также больше не могу запрашивать отношения пользователя.

Как я могу добиться этого простым способом?>

Подробнее здесь: https://stackoverflow.com/questions/280 ... o-relation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»