Size: a a a

2020 November 27

is

i skubiy in symfony
ребята, столкнулся с такой сложностью, если. кто то подскажет решение буду благодарен, не получается прокинуть зависимость переменной в бандл, переменная хранится в основном проекте в енвах. в переменной хранится строка которая парсится процессором.

parameters:
  some_data: '%env(json:DATA_LIST)%'

DATA_LIST='["asd","asd"]'.

когда прокидываю ее в конфиги бандла

->arrayNode('some_data')
   ->scalarPrototype()
       ->defaultValue([])
   ->end()
->end()


получаю ошибку:
A dynamic value is not compatible with a "Symfony\Component\Config\Definition\PrototypedArrayNode"

но если не тянуть с переменных окружений а явно указать список значений в параметрах, все ок
parameters:
  some_data:
      - 'val 1'
      -  'val 2'

как решить это особо не нагуглил
источник

i

invariance in symfony
посмотри сорцы где ошибка возникает, подампай данные
источник

q

qq in symfony
Привет, хочу сделать такой роут:
/**
* @Route("/books/{book}/{page}", name="books_show_page", requirements={"book"="\d+", "page"="\d+"})
* @param Book $book
* @param Page $page
* @return Response
*/
public function showPage(Book $book, Page $page): Response {

С book все просто - это Book.id, оно само конвертацию делает, а вот page - это не Page.id, это Page.number, он в базе не уникален, то есть в запросе нужно одновременно искать по Page.number и Page.book(между Book и Page есть relation), как в таком случае настроить ParamConverter?
источник

VM

Volodymyr Melko in symfony
там есть возможность искать по експрешену
источник

VM

Volodymyr Melko in symfony
qq
Привет, хочу сделать такой роут:
/**
* @Route("/books/{book}/{page}", name="books_show_page", requirements={"book"="\d+", "page"="\d+"})
* @param Book $book
* @param Page $page
* @return Response
*/
public function showPage(Book $book, Page $page): Response {

С book все просто - это Book.id, оно само конвертацию делает, а вот page - это не Page.id, это Page.number, он в базе не уникален, то есть в запросе нужно одновременно искать по Page.number и Page.book(между Book и Page есть relation), как в таком случае настроить ParamConverter?
источник

q

qq in symfony
Я видел это, там просто вызов метода репозитория, а именно нужную мне конвертацию сделать нельзя без создания метода в репозитории?
источник

q

qq in symfony
Хотя ладно, создам метод, спасибо
источник

q

qq in symfony
Что-то не пойму, что не так?
/**
    * @Route("/books/{book}-{page_number}", name="books_show_page", requirements={"book"="\d+", "page_number"="\d+"})
    * @Entity("page", expr="repository.findByNumber(book, page_number)")
    * @param Book $book
    * @param Page $page
    * @return Response
    */
   public function showPage(Book $book, Page $page): Response {
Выдает
[Semantical Error] Annotation @Entity is not allowed to be declared on method App\Controller\BooksController::showPage(). You may only use this annotation on these code elements: CLASS in config/routes/../../src/Controller/ (which is being imported from "config/routes/annotations.yaml"). Make sure annotations are installed and enabled.
источник

q

qq in symfony
Аннотации установлены и настроены
источник

q

qq in symfony
Разобрался, не тот use выбрал, use Doctrine\ORM\Mapping\Entity; вместо use Sensio\Bundle\FrameworkExtraBundle\Configuration\Entity;
источник

I<

Ivan <Chi> in symfony
> @Entity("page", expr="repository.findByNumber(book, page_number)")
Не ужели эта магия нравится кому-то?
источник

ДВ

Денис Васин... in symfony
Ivan
> @Entity("page", expr="repository.findByNumber(book, page_number)")
Не ужели эта магия нравится кому-то?
а с какой версии это у симфони на контроллере '@entity'?
источник

I<

Ivan <Chi> in symfony
Денис Васин
а с какой версии это у симфони на контроллере '@entity'?
Это из SensioFrameworkExtraBundle и требует symfony/expression
источник

ДВ

Денис Васин... in symfony
Ivan
Это из SensioFrameworkExtraBundle и требует symfony/expression
мерси
источник

SZ

Sergey Zolotov in symfony
чет как-то php-cs-fixer 8й пхп не очень поддерживает. бида
источник

AA

Artem Aleksandrov in symfony
Sergey Zolotov
чет как-то php-cs-fixer 8й пхп не очень поддерживает. бида
да чего-то мне кажется надо еще до января обождать все это
источник

q

qq in symfony
Оказалось можно проще, упростил до:
@Route("/books/{book}-{page_number}", name="books_show_page", requirements={"book"="\d+", "page_number"="\d+"})
@ParamConverter("page", options={"mapping": { "book": "book", "page_number": "number"}})
источник

SZ

Sergey Zolotov in symfony
Artem Aleksandrov
да чего-то мне кажется надо еще до января обождать все это
може подвезут вместе со свежей версией симфони
источник

q

qq in symfony
А можно ли как-то ограничить в роуте параметр в пределах integer? А то можно тупо передать 9999999999 и ParamConverter считает это нормальным числом, если указано в requirements \d+, но вот дальше уже выходит SQLSTATE[22003]: Numeric value out of range:
источник

VM

Volodymyr Melko in symfony
qq
А можно ли как-то ограничить в роуте параметр в пределах integer? А то можно тупо передать 9999999999 и ParamConverter считает это нормальным числом, если указано в requirements \d+, но вот дальше уже выходит SQLSTATE[22003]: Numeric value out of range:
можно
источник