Size: a a a

2021 July 07

М

Максим in Laravel Pro
@Med1c84 Паша говорил не о скорости выполнения, а о скорости написания запроса
источник

AN

Alexander N in Laravel Pro
Я вообще сначала его пишу всегда
источник

КД

Кирилл Добров... in Laravel Pro
кто делал фильтрацию через QueryBuilder и через relation ?

Например:

$groups = QueryBuilder::for(Group::class)
                   ->join('clients', 'clients.group_id', 'groups.id')
                   ->allowedFilters([
                       AllowedFilter::partial('clients.client_lead_id', null, false),      
                   ])
                   ->paginate($request->per_page ? (int)$request->per_page : 25);


Это сделает такой запрос в бд

select
 count(*) as aggregate
from
 groups
 inner join clients on clients.group_id = groups.id
where
 LOWER(clients.client_lead_id) LIKE '%8828695%'
 and groups.deleted_at is null

но что всегда пустой ответ
источник

КД

Кирилл Добров... in Laravel Pro
Есть даже страничка с фильтрацией в Laravel  https://spatie.be/docs/laravel-query-builder/v2/features/filtering и я сделал как в нём, но вы не сработало
источник

AN

Alexander N in Laravel Pro
А потом перевожу на qb
источник

М

Максим in Laravel Pro
#metoo
источник

PB

Pavel Buchnev in Laravel Pro
Ладно, обсуждение идёт не в том ключе. Все делают в целом одинаково, вопрос был в другом, а нужно ли оно вообще в некоторых случаях?! На эту тему, к сожалению нет видео с доклада и сам я его не видел, но бегло смотрел тезисы, но там нет толком ничего. https://phprussia.ru/moscow/2021/abstracts/7654
источник

М

Максим in Laravel Pro
Почему не в том ключе? Лекцию гляну, спасибо)
источник

PB

Pavel Buchnev in Laravel Pro
там, к соджалению, мало полезного, только слайды. Я жду когда видео появится и интересно посмотреть на этот опыт. Про "не в том ключе" я про то, что довод свелся к тому, что надо только так, не очень хочется переубеждать и доказывать, это не возможно, когда человек к этому не готов :)
источник

М

Максим in Laravel Pro
Ну в общем, это к тому же junior/middle/senior и «enterprise» разработке. Чем выше твои скилы и кол-во технологий которыми ты владеешь, тем меньше ты хочешь использовать/вспоминать то с чего ты начинал, думая об этом как о «что, зачем, я ведь это 5-10 лет назад учил!». На практике нормальный разраб познается в понимании того когда можно срезать углы и когда уместнее использовать нативное решение вместо пакета/паттерна/etc. А вообще за всеми вопросами о карьерном росте обращайтесь к @faqphp 😉
источник

JP

Jenya Punchenko in Laravel Pro
Привет, кто знает на LengthAwarePaginator не работает protected $casts на timestamps
источник

PB

Pavel Buchnev in Laravel Pro
Так и есть. Много зависит от разных факторов, сейчас у всех фактор фреймворк и инструменты которые он даёт и ограничения в рамках компании в которой они работают и одобрят ли их решения тех лид или код ревьюер. Я к счастью уже сам могу себе такие вопросы задавать и принимать решения. Да и опыт других команд показывает, что QueryBuilder не даёт гарантии что его использование позволит перейти на другую БД в виду специфичных возможностей, да и бд менять а работающем проекте так себе идея.
источник

А

Антон in Laravel Pro
А что я? Я джун.
источник

JP

Jenya Punchenko in Laravel Pro
Ну оно кароче вообще работает. Толоько берет данные из обьекта original, где casts не применены.
источник

EG

Egor Gruzdev in Laravel Pro
а причем здесь LengthAwarePaginator и cast который находится в модели?
источник

М

Максим in Laravel Pro
Имеешь ввиду Junior-Senior+++? 😉
источник

JP

Jenya Punchenko in Laravel Pro
При том что оно разбирает его как раз из этой модели. Но сам content который передается корректный
источник

JP

Jenya Punchenko in Laravel Pro
content и data правильная. А обьект LengthAwarePaginator содержит original с обьектом casts и стандартными значениями
источник

JP

Jenya Punchenko in Laravel Pro
их и передает в блейд
источник

EG

Egor Gruzdev in Laravel Pro
она работает с коллекцией моделей или массивом (который потом заворачивает в коллекцию), ничего он там с моделью не делает, отдает как есть
источник