Null
Ну блин. КЛассическая сущность без обвесов в элоквенте
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
}
Null
Вот какие поля есть у юзера? Я в доктрине в бд вообще могу не лазить. Открыл класс - почитал, все понял.
Null
Null
BookWithAuthorAndPublisherDto
Null
Ну либо потрахаться и написать кастомный маппер (не хочу)
Null
Я луше в коде склею и все будет читабельно именно через код.
The Ant
комментарии пиши к классу, и там указывай доступные поля
Null
:D здоооровааа.
А еще миграции ручками.
Null
И нидай бох в блупринте ошибся.
The Ant
оно хоть и магия, но магия полезная. вместо тысячи строк боилерплейта всратого всего несколько в квери билдере
Null
Ну и это.
$user->{вот тут моя IDE обосралась, ведь это ларавел}
Против $user->get{Phone|Name|Mail|SiskiIlicha}()
Null
Vlad
ЗАТО УДОБНО, КЛАЦ , КЛАЦ И ГОТОВО))
The Ant
дык да, зачем дрочиться, когда можно этого не делать )
The Ant
я вот пару месяцев назад всерьез задумался заташить эктив рекорд рядышком с доктриной в симфу, но потом решил всё-таки вручную клеить релейшены. Говно говна конечно, но похеру.
Юра
The Ant
Null
Кстати да. А что мешает через query builder сделать джойны?
Null
Если там вдруг связь двусторонняя.
Юра
new Book(author: ..., publisher: ...)
The Ant
Null
$user->getSubscriptions() - lazy,
->leftJoin(u.subscrbtions, s) - eager
Юра
Это че везде писать виз?
Юра
Везде где книга нужна?
Юра
Такое..
The Ant
нет, только где нужны решейшены
Igor
Igor
Это Я про юниты, если что
The Ant
$books = Book::with(['author', 'publisher', 'poster', 'genres'])->get();
вот тут я в 1 строчку выгребу записи с релейшенами сразу.
Причем могу добавить фильтров без проблем через ->where()
С доктриновским квери билдером такое не получится, надо отдельно дергать списки релейшенов и в коде джойнить.
С голым скулом просто охуеешь, если фильтр будет сложный )
Сергей
почему не сделаешь
->select('book, publisher, poster, genres')
->from ('book')
->join( book.publisher, publisher)
и тд
и where заработает
->where('publisher.name = 'aaa');
The Ant
The Ant
доктрина пытается всё в 1 запрос впихнуть, если у тебя фильтр будет с джойном, и решейшены с джойном, то случится факап
Сергей
а должны быть во сколько запросов?) если ты просишь вернуть ВСЕ сразу
The Ant
в 1 запрос основное по фильтру, и отдельно по запросу на релейшены
The Ant
склеить у себя там гдето в коде. Чтобы мне в ручную этого не делать
Сергей
нужно отдельно по запросу на релейшены - убираешь select()
нужно все сразу - дбавляешь в select
все остальное нормально работает.
типовая же вещь
The Ant
The Ant
в чем смысл тогда?
Юра
Юра
Не понятно что тебе нужно
Сергей
зачем что то клеить?)
я просто аналог запроса with на доктрине скинул, потому что ты сказал, так нельзя в доктрине - можно
да, не в одну строчку, но можно
Юра
Dql можно в одну строчку )
The Ant
Получше же да? чем чем недоразумение с ручным присоединением релейшенов :D
The Ant
вот я делал тогда такую хрень, но она забагованая, там на фильтрах дичь происходит с рандом цифрами в каунтере и результаты на ктраницах вообще хер пойми какие
Сергей
hydrate array
Юра
С какими фильтрами происходит фигня?
Сергей
это я к тому, что результат итоговый будет плавать от one to many например)
The Ant
Сергей
гидрацаия в массив - это просто результат запроса, и да - тут все ручками придется делать
Юра
А зачем эти все партиал селекты?
Сергей
короче тут в другому проблемы, если коротко, не в доктрине
Юра
Почему не сериализатор?
The Ant
Юра
Ну есть сериализатор и группами может выдать массив с определенными полями
Юра
А если нужно просто массив то ну да партиал. А твой ларавель что вернет?
The Ant
да нафиг тот сериализатор, если это работает. Но оно работает только если взять по иду
The Ant
на списках там ад и израиль
Юра
Ну вот ты пример скинул на ларавеле
Юра
with
Юра
Какие поля он вернёт?
Konstantin
блин, хорси, а можно банить тут за пиздёж про ларавель, питон и прочую, совершенно не симфони-релатед херню?
The Ant
все, но я там могу выбрать то что нужно в этом витч
Konstantin
ну заели эти детские тёрки вечно, трите там где-нибудь еще, оставьте это место для дискуссий чисто по симфони
Юра
Ну так же ты выбираешь что нужно в select
Юра
В чем блин разница
The Ant
В чем блин разница
разница в том, что в ларе это бует работать, с любыми фильтрами, а в доктрине нет.
потому что лара тянет релейшены отдельно. и клеит их в недрах эктив рекорда. А симфа всё в 1 запрос собирает, и оно хуй пойми как работает
Юра
Написал просто псевдоприсем на ларавеле и полный пример на доктрине
Юра
Напиши полный на ларавеле
Юра
С нужными полями
Юра
В одну строку
Сергей
Юра
Со всеми связями