Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 21.12.2017 12:00:28

Конструктор запросов. Join

Как мне реализовать аналог joinWith из Yii2? Чтобы таблица шла через left join, и поля были доступны по типу $table->second_table->field

Если делать по мануалу - получается два запроса в базу, чего я категорически не хочу делать:

$user = User::find(1);
$profile = $user->profile;

Если использовать with, получается не совсем то, и тоже два запроса в базу.

Если напрямую джоинить, то непонятно как к полям profiles обращаться. описывать их всех в родительской модели не вариант

$user = User::leftJoin('profiles as p','p.id','=','users.id')->where('users.id',Auth::user()->id)->first();

Поля которые не повторяются, нормально работают. А что делать, допустим, когда таблицы имеют стандартные поля created_at, updated_at, как их различать?
Писать тупо

select(['table_one.*','my_awesome_table.created_at as mat_cat'])

Получается "мощщщная" ORM Eloquent довольно избыточная, как в плане запросов в базу, так и в плане кода.
Как же так... Что делать???

Изменено ke1evra (21.12.2017 13:07:20)

Не в сети

#2 21.12.2017 13:04:32

Re: Конструктор запросов. Join

Если использовать with, получается не совсем то, и тоже два запроса в базу.

Зато в этим легко работать и это можно будет поддерживать.

Не в сети

Подвал раздела