У меня есть поле ChoiceType :: Type, которое отображает некоторые варианты, и я хочу добавить для каждого выбора вход для добавления цены на него. Я сделал это так:Symfony - добавление и сохранение дополнительных полей
->add('product_price', ChoiceType::class, array(
'choices' => array(
"Product 1",
"Product 2",
),
)
JS, что добавить вход для каждого варианта:
var productBoxes = $("[id^=product_]");
// Listen the checkbox to display or hide the prices inputs
productBoxes.each(function (index) {
var priceField = '<label class="control-label required" for="product_price_' + index + '">Capacité</label>' +
'<input type="text" id="product_price_' + index + '" name="product[price][]" class="form-control">';
$(this).click(function() {
if ($(this).is(':checked')) {
$(this).parent().append(priceField);
}
})
})
В JavaScript работает, это добавить поля рядом друг выбор. Теперь я хочу отправить свои данные в массив, например: [«Продукт 1» => «значение приложенного поля»]
Но я не знаю, как получить эти дополнительные данные и сохранить их в базы данных.
Кто-нибудь знает, как это сделать?
EDIT 1 Я пытался сделать это с CollectionType, но не узнать, как сделать каждый элемент CollectionType как флажок. Есть ли способ сделать это таким образом?
Благодарим за помощь!
Yup, я так пробовал, но не узнал, как 1. Render CollectionType как флажки. 2. Добавьте ценовой ввод на выбор продукта. Есть ли способ сделать это? – Boulboulouboule
Вы можете добавить поле флажка в ProductPriceType. Он будет выглядеть как флажок для каждой записи продукта. А затем сохраните элемент массива, который установил флажок – Victor