我有两种型号:汽车和乘客。
Car hasMany Passenger
乘客所属于汽车
我设法为每个模型创建添加功能,并设法解决它们之间的hasMany关系。
现在我正在尝试创建一个addCar函数和视图,允许用户创建一辆新车并自动生成乘客。
我想到了这样的事情
现在我的问题是:最好的方法是什么?是否有关于此类实体和相关子实体创建的模式/教程?
澄清:与汽车相关的乘客在汽车存在之前不存在。
答案 0 :(得分:1)
在视图 views / passengers / add_cars.ctp 中使用以下代码:
<?php
echo $this->Form->create('Car');
echo $this->Form->input('name');
echo $this->Form->input('model');
echo $this->Form->input('Passenger.0.name');
echo $this->Form->input('Passenger.0.age');
echo $this->Form->input('Passenger.1.name');
echo $this->Form->input('Passenger.1.age');
echo $this->Form->end();
?>
这基本上从输入汽车信息的必要字段开始。然后,您可以使用常规格式Passenger.{$i}.name
开始循环,以便在添加新车时动态添加乘客。您可以使用jQuery创建“添加”和“删除”按钮,这些按钮将添加或删除Passenger表单条目的行。
在 passengers_controller.php 中(假设这是您想要add_cars的控制器),请使用saveAll
功能:
function add_cars() {
if (!empty($this->data)) {
if ($this->Passenger->Car->saveAll($this->data)) {
$this->Session->setFlash('Success');
$this->redirect('/');
} else {
$this->Session->setFlash('Error');
}
}
}
希望有所帮助。