Ilya 🃏
avg с числом сравнить пробовали?
Это уже от безысходности, конечно)
Ilya 🃏
Ilya 🃏
Вообще пишет что не видит эту переменную
Vlad
тебя вообще не смущает, что эти переменные в другом запросе (вложенном) объявлены?
Ilya 🃏
Так вот о том и речь шла, с самого начала эе об этом и спросил) Можно ли так и если нет - как правильно
Ilya 🃏
а нет, там не внутри
Ilya 🃏
вся эта переменная - результат всего запроса avg
Alexander
сам запрос страшный c1_ и c4_ одна и та же таблица, подзапрос будет считаться на каждую запись начните с запроса с avg и к нему присоединяйте что надо либо ещё хуже - весь запрос в подзапрос и сверху уже эти ограничения)))
Ilya 🃏
Соль в том, что этих avg будет несколько)
Ilya 🃏
Пытаемся засунуть пользовательские фильтры в запрос)
Ilya 🃏
Чтобы не вытаскивать вообще все а потом фильтровать
Ilya 🃏
там будет 2 таких avg по трем разным полям и нужно их проверять одновременно
Санжар
Кто-нибудь пробовал ларавеловские .env читать? Есть вменяемый способ оттуда креды доставать?
Pavel
в чем собственно проблема?
Санжар
в чем собственно проблема?
Вообще проблема такая. В Symfony: DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=13&charset=utf8" В doctrine.yaml: dbal: url: '%env(resolve:DATABASE_URL)%' Т.е достается все из DATABASE_URL, а если у меня .env файл подобный: DB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 DB_DATABASE=1_postgresql_cloud То как оттуда я должен вытаскивать поля=значения? Примера именно не хватает просто как с таким видом работать
Санжар
concat
в духе %env(resolve:DB_HOST+DB_PORT)? Или где именно конкатенацию делать? не в yaml файле наверн Мб другой способ есть?
Pavel
объедини в .env в одну строку и передавай ее
Pavel
либо если тебе важно, чтобы все эти переменные были отдельно, добавь новую DATABASE_URL, в которой сделай конкат всех этих переменных
Санжар
либо если тебе важно, чтобы все эти переменные были отдельно, добавь новую DATABASE_URL, в которой сделай конкат всех этих переменных
Хмм.. А нет возможности просто доставать по ключам? Например: doctrine: dbal: dbname: database host: localhost port: 1234 user: user password: secret driver: pdo_mysql # if the url option is specified, it will override the above config url: mysql://db_user:db_password@127.0.0.1:3306/db_name И в каждое поле через %env(resolve:DB_HOST)%, например Мне просто нужна возможность вообще не трогать структуру самого .env
Максим
Хмм.. А нет возможности просто доставать по ключам? Например: doctrine: dbal: dbname: database host: localhost port: 1234 user: user password: secret driver: pdo_mysql # if the url option is specified, it will override the above config url: mysql://db_user:db_password@127.0.0.1:3306/db_name И в каждое поле через %env(resolve:DB_HOST)%, например Мне просто нужна возможность вообще не трогать структуру самого .env
У доктрины есть второй способ конфигурации не по URL. doctrine: dbal: default_connection: default # A collection of custom types types: # example some_custom_type: class: Acme\HelloBundle\MyCustomType connections: # A collection of different named connections (e.g. default, conn2, etc) default: dbname: ~ host: localhost port: ~ user: root password:
Максим
https://symfony.com/bundles/DoctrineBundle/current/configuration.html
Максим
А как он достается значения для тех же dbname/host/port? Можно же из .env?
Да, вместо значений подставляете так же как полный урл из env
Санжар
Да, вместо значений подставляете так же как полный урл из env
Вот это прям огонь, в доку смотрел, но проглядел этот момент
Санжар
Всем спасибо, помогли
A
Кто-то знает, как сделать, что бы компонент serializer сериализовал только свойства определенного типа? или наоборот, убрать из данных свойства ненужного типа.
Vlad
normalizer?
Иван
понаставят сериалайзеров, а потом разобраться с ними не могут
Иван
может проще сделать дто с публичными полями и нативно его в json?
Vlad
serializer ❤️
Юра
Equaliser
A
zalu*iser
A
Помогите плз по шаблонам twig. Пример: Шаблон - form.twig <form> ... {% block submit %} <input value='submit'> {% endblock %} </form> Шаблон - page.twig {% extends 'base.twig' %} {% block content %} {% include "form.twig" %} {% endblock %} Вопрос, как в шаблоне page.twig переопределить блок submit, который подключается через инклуд ? В разных местах пробовал писать, что-то не помогает...
A
(((
A
а как ,(
Юра
https://twig.symfony.com/doc/3.x/tags/embed.html
Юра
Вот так
A
Вот так
спасибо! жуть какая))
Konstantin
чятик, привет. а вы тут, случайно, не знаете, можно ли каким-то костылем обойти это https://github.com/symfony/symfony/issues/45257 ?
Konstantin
я чот сдаюсь, идеи кончились
Konstantin
давай опустим необходимость использования атрибутов 🙂
Konstantin
не из реквеста, во-первых, а из Symfony\Bundle\FrameworkBundle\Controller::getUser
A
можно перехватить RuntimeException и выкинуть AccessDeniedException 😁
A
шутка, я симфони не знаю)
Konstantin
это где-то совсем в кернеле делать придется )
Konstantin
https://symfony.com/blog/new-in-symfony-5-2-controller-argument-attributes
Konstantin
дока как бы намекает, что таки можно так делать
Konstantin
конечно, всё стоит и работает
Konstantin
стоит тайпхинт сменить на ?User - всё ок
Vlad
а почему не можешь закрыть эндпоинт фаерволом?
Konstantin
так не в том дело, похоже
Konstantin
сейчас падает лиснер на controller.arguments, он раньше секурити срабатывает, похоже
Konstantin
то есть сначала оно резолвит аргументы, потом передает управление дальше, в тч секурити лиснеру. и сейчас, при незалогиненном юзере, все аргументс резолверы, что могут отрезолвить User, возвращают нулл
Konstantin
и падает именно controller.arguments лиснер, не дойдя до секурити-лиснеров, которые уже мои is_granted, файрволлы итд проверят
Vlad
ох
Konstantin
я там могу ошибаться в названиях/событиях, но суть похоже такая
Vlad
не используй аттрибуты)))
Konstantin
да это понятно 🙂
Konstantin
меня слегка $this->getUser() задолбало (как минимум по причине неудобного мне тайпхинта + нуллабельности). хочется, чтобы юзер в контроллере был мой - App\Entity\User, а не UserInterface
Иван
а чем ?User не устраивает?
Konstantin
и чтобы в закрытых файрволлом методах контроллеров был юзер гарантированно (то есть User, а не ?User)
Konstantin
а чем ?User не устраивает?
стат-анализ ноет
Иван
ну заткни ему рот
Konstantin
ну мне это не очень нравится, хочется иметь простой код с чистыми функциями
Konstantin
в целом инспекция на нуллабельность очень крутая, не хочется ей рот затыкать, она сильно выручает
Иван
у меня статанализ в одном месте с ума сходит указываю тип - он орёт, что лишнее указание типа, и так ясно убираю - орёт, что не указан тип
Konstantin
но похоже что так, тут нет вариантов, кроме ?User
A
А нельзя создать свою обертку, которая будет по методу getUser возвращать Обычного юзера, или выбрасывать access denied
Konstantin
да можно, но мне в целом getUser не очень нравится - хочется чтобы методы контроллеров были чистыми и на уровне типов понятными
A
смешивание ответственностей
дядюшки боба рядом нет
Konstantin
если аргумент User нуллабельный - эта страница доступна и для авторизованных, и нет. если не нуллабельно - только для авторизованных