Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Как мне реализовать аналог 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)
Не в сети
Если использовать with, получается не совсем то, и тоже два запроса в базу.
Зато в этим легко работать и это можно будет поддерживать.
Не в сети
Страницы 1