im пытается защитить сериалы от уже купленных продуктов, поэтому я установил связь между таблицей счетов, таблицей сериальных таблиц и моей таблицей продуктов, отношения показаны ниже.как обрабатывать многие отношения в форме
я уже сделал форму для добавления отношения между product_table и invoice_table с serial_table, форма добавлением отношений и сериалов, но пользователь не должен быть доступен для выбора соотношения между таблицы, он должен найти идентификатор idproduct и id из сделанной покупки и сохранить сериалы и отправить его в базу данных без изменения пользователем, ниже - изображение моей формы.
это formtype из формы выше
class serialType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('serial','integer')
->add('idPedido')
->add('idProducto')
->add('agregar serial','submit')
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'sava\InventarioBundle\Entity\TblProductosSeriales'
// 'inherit_data' => true
));
}
/**
* @return string
*/
public function getName()
{
return 'sava_inventariobundle_serial';
}
}
я импортировал мои ORM файлы с php app/console doctrine:mapping:import
команды из таблиц, приведенных выше.
это мой товар.
sava\InventarioBundle\Entity\TblProductos:
type: entity
table: tbl_productos
fields:
idProduct:
id: true
type: integer
unsigned: false
nullable: false
column: id_product
generator:
strategy: IDENTITY
lifecycleCallbacks: {
}
мой серийный ключ таблицы ОРМ.
sava\InventarioBundle\Entity\TblProductosSeriales:
type: entity
table: tbl_productos_seriales
fields:
idProductoSerial:
id: true
type: integer
unsigned: false
nullable: false
column: id_producto_serial
generator:
strategy: IDENTITY
serial:
type: string
length: 80
fixed: false
nullable: false
manyToOne:
idProduct:
targetEntity: TblProductos
cascade: { }
mappedBy: null
inversedBy: null
joinColumns:
id_product:
referencedColumnName: id_product
orphanRemoval: false
idinvoice:
targetEntity: TblPedidos
cascade: { }
mappedBy: null
inversedBy: null
joinColumns:
id_pedido:
referencedColumnName: id_invoice
orphanRemoval: false
lifecycleCallbacks: { }
это мой счет-фактура.
Спасибо за ответ. Хорошо, теперь я понимаю, что мне нужно ввести идентификатор из таблицы продуктов и счетов в последовательную таблицу.Однако я не вижу, как я собираюсь найти идентификатор с серийным номером, который я предоставил с формой, если отношение не существует в данный момент. Поэтому я думаю, есть ли в любом случае, что я могу отправить идентификатор или связанные данные из таблицы продуктов и счетов? На странице, где вы просматриваете форму, отображаются данные, относящиеся к таблице счетов и продуктов. Как я могу отправить эти данные контроллеру, должен ли я сделать другую форму или использовать одну и ту же серийную форму. – 2one2
, так что, наверное, у вас есть идентификатор продукта и идентификатор счета в вашем шаблоне ветки, где отображается форма? – oligan
Большое спасибо, ваш ответ действительно помог мне. – 2one2