Вы здесь

Как связать сущность и Form API?

0

Привет! Как в восьмёрке связать кастомную Content Entity и форму наиболее грамотно? Сущности поля задаются, используя средства Drupal\Core\Field\BaseFieldDefinition, представление создано (блок) теперь уже коробочным Views. В блоке планирую сделать кнопку, которая будет вести на форму и содержать параметр для формы. Смотрю в сторону Field Formatter для создания кнопки, routing.yml для включения в путь параметра + приведение к типу (services.yml, ParamConverterInterface). И передавать интерфейс моей сущности buildForm(array $form, FormStateInterface $form_state, MyEntityInterface $my_object= NULL) После этого у меня в конструкторе будут доступны методы для взаимодействия с объектом. Я в том направлении двигаюсь? По сути речь идет о конфигураторе в форме и инициализации состояния формы при клике на кнопку в блоке. Буду рад конструктивным комментариям.

Версия Drupal: 
8.x
Категория: 
Entity APIField APIForm API
Вопрос задан 17.02.2017 - 14:24

моя Content Entity это подобие Вариации продукта а-ля Commerce 2.х, продукт в моем кейсе это не товар, а услуга. при создании Вариации в админке юзер указывает составляющие эту Вариацию значения атрибутов. Отдельную сущность для Продукта не делаю, в каталоге услуг вывожу Вариации через Views. Планирую реализовать для одного из полей сущности Вариация Field Formatter для создания кнопки Заказать. Суть вопроса -- связь этой кнопки и формы, которая будет выступать в качестве корзины.

Комментарий оставлен 17.02.2017 - 17:26

что значит "связь этой кнопки и формы"?

Комментарий оставлен 17.02.2017 - 17:34

в buildForm() мне нужно понимать для какой вариации(-ий) строить форму. кнопка согласно вышеописанному это <a href=/my/url/argument>, не <button>

Комментарий оставлен 17.02.2017 - 17:47

вам надо в buildForm получить значение argument?

Комментарий оставлен 17.02.2017 - 23:04

передать аргумент в параметр формы -- это не вопрос. вопрос в том, правильный ли это путь, может существует иной, более разумный в рамках друпаловской архитектуры, путь для реализации корзины, и я не догоняю. веду речь о API, не о контриб модулях, они не удовлетворяют моим требованиям

Комментарий оставлен 21.02.2017 - 14:14

Ответы