我正在开发一个租赁自行车平台,但我被困在预订表格中(第 2 步)。
在第一步中,用户选择了预订日期和他们的个人数据。在第二步中,他们可以根据带有从 0 到 x 的选择小部件的表单选择他们想要租用的自行车数量(直到该日期可用的自行车)。
问题是我不知道如何管理这个表格。到目前为止,我有一个“BookingType”,其中包含“Bike”实体的集合。在那一刻,用户可以选择他们想租哪辆自行车,但不能选择数量。你会创建一个包含自行车的“BookingBikeType”,而BookingType将包含这个新的“BookingBikeType”的集合吗?
如果有帮助,我粘贴了架构和预订类型:
BEM\ReservaBundle\Entity\Reserva:
type: entity
table: null
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
inici:
type: datetime
fi:
type: datetime
import:
type: float
nullable: true
manyToMany:
bicicletes:
targetEntity: BEM\BikeBundle\Entity\Bike
oneToMany:
reserva_personalitzacio:
targetEntity: ReservaPersonalitzacio
mappedBy: reserva
manyToOne:
client:
targetEntity: BEM\ClientBundle\Entity\Client
cascade: [persist]
lloc_recollida:
targetEntity: ReservaLlocRecollida
lifecycleCallbacks: { }
class ReservaType extends AbstractType {
private $translator;
public function __construct($translator = null) {
$this->translator = $translator;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('inici', null, array(
'widget'=>'single_text',
'format'=>'yyyy-MM-dd',
'attr'=>array('class'=>'diaInicio',
'placeholder'=>(($this->translator === null) ? '' : $this->translator->trans('Fecha inicio')),
'readonly'=>'readonly'
)
))
->add('fi', null, array(
'widget'=>'single_text',
'format'=>'yyyy-MM-dd',
'attr'=>array('class'=>'diaFinal',
'placeholder'=>(($this->translator === null) ? '' : $this->translator->trans('Fecha final')),
'readonly'=>'readonly'
)
))
->add('import')
->add('lloc_recollida', null, array('empty_value'=>false))
->add('nou_lloc_recollida', new ReservaLlocRecollidaType($this->translator), array('required'=>false))
->add('client', new ClientType($this->translator))
->add('bicicletes')
//->add('bicicletes', new ReservaBicicletaType())
;
}
对于在第 2 步中选择的每辆自行车,它将创建尽可能多的 ReservaPersonalitzacio,用户可以在其中自定义他们的预订,如“自行车高度”、“车轮尺寸”等。
所以?你将如何解决暴露的问题?
谢谢!