Задать вопрос
Ответы пользователя по тегу Symfony
  • Как задать значение по умолчанию для сущности DOCTRINE ORM?

    @tukreb
    Можно так, через options={"default"="now()"}
    /**
         * @ORM\Column(name="date", type="datetime_immutable", nullable=false, options={"default"="now()"})
         */
        private \DateTimeImmutable $date;

    Точно работает с now(), более сложного не проверял, но я не вижу причин почему не должно сработать. Правда не факт, кто доктрина сможет правильно сгенерировать миграцию, возможно руками придётся править в миграции.
    Ответ написан
    Комментировать
  • Как реализовать Форму создания товара с генератором атрибутов?

    @tukreb
    Дальше отображаете это всё в twig.
    Например можете в twig отправить готовую html код CollectionType формы в html атрибут data-prototype
    <div data-prototype="
    {% apply escape %}
         {{ include('app/template/prototype/collection_form.html.twig', { 'form': form.attributes.vars.prototype }) }}
    {% endapply %}"></div>

    в файле collection_form.html.twig что-то такое:
    {{ form_widget(form.name) }}
    {{ form_widget(form.product) }}
    {{ form_widget(form.attribute) }}

    Далее через javascript вставляете html форму из data-prototype, когда пользователь нажмёт кнопку добавить новый атрибут. При вставке вам нужно будет вручную выставлять индексы новым полям, по дефолту symfony засунет туда что-то вида form[__name__]
    Ну при сохранение, всё будет в виде массива в attributes[]

    Если у вас уже готовые атрибуты в attributes[], то просто через foreach создаёте форму.
    {% for row in form.attributes %}
        {{ form_widget(row.name) }}
        {{ form_widget(row.attribute) }}
    {% endfor %}
    Ответ написан
    Комментировать
  • Как мне создать отношение ManyToOne при джойне к 2 колонкам?

    @tukreb
    Нельзя в Доктрине джойнить сразу по 2 полям одну сущность, если это не ManyToMany (которая в свою очередь не может содержать ничего кроме 2 ID полей, иначе придётся вручную разбивать связь на ManyToOne и выделять отдельные ID).
    У вас уже имеется специальный ID по ним и описывайте связь ManyToOne
    Например
    class Inventory {
        /**
         * @ORM\ManyToOne(targetEntity=Price::class, inversedBy="prices")
         * @ORM\JoinColumns({
         *   @ORM\JoinColumn(name="id_price", referencedColumnName="id")
         * })
         */
        protected $prices;
    }
    Ответ написан
    Комментировать
  • Пагинация последняя страница должна быть первой как сделать?

    @tukreb
    Отслеживайте значение страницы через Request и при нужной условии сделайте, что вам требуется.
    Ответ написан
    Комментировать