我是一个新的蛋糕php开发者。我正在尝试插入多个记录,但我不能。我的表结构如下: 表名: 剂
============================================== id | Contact | Name | email_add | Address ==============================================
控制器代码:
public function send_money()
{
$this->layout='agent';
$this->Agent->create();
$this->Agent->set($this->data);
if(empty($this->data) == false)
{
if($this->Agent->save($this->data))
{
$this->Session->setFlash('Information Added Successfully.');
$this->redirect('send_money');
}
}
else
{
$this->set('errors', $this->Agent->invalidFields());
}
}
型号代码是:
<?php
App::uses('AppModel', 'Model');
/**
* Admin Login Model
*
*/
class Agent extends AppModel
{
public $name='Agent';
public $usetables='agents';
public $validate = array(
'contact' => array(
'contact_not_empty' => array(
'rule' => 'notEmpty',
'message' => 'Please Give Contact No',
'last' => true
),
),
'name' =>array(
'rule' => 'notEmpty', // or: array('ruleName', 'param1', 'param2' ...)
'allowEmpty' => false,
'message' => 'Please Enter Name.'
),
'email_add' => array(
'email_add' => array(
'rule' => 'email',
'allowEmpty' => true,
'message' => 'Please Enter Valid Email',
'last' => true
)),
);
}
&GT;
无法使用此代码插入记录。我该怎么办?
答案 0 :(得分:3)
在您的查询中尝试使用saveall(),除了保存,希望这有帮助
if($this->Agent->saveall($this->data))
让我知道它是否有效。
答案 1 :(得分:3)
让我解释一切。
首先,您的html表单必须如下所示。
<?php echo $this->Form->create('User'); ?>
<tr>
<td>
<?php
echo $this->Form->input('User.0.address',array
(
'div' => null,
'label' => false,
'class' => 'span required'
));
?>
<?php
echo $this->Form->input('User.1.address',array
(
'div' => null,
'label' => false,
'class' => 'span required'
));
?>
<?php
echo $this->Form->input('User.2.address',array
(
'div' => null,
'label' => false,
'class' => 'span required'
));
?>
</td>
<td>
<input type="submit" value="Add" >
</td>
</tr>
<?php echo $this->Form->end(); ?>
正如您可以看到使用cakephp同时保存许多记录,您必须将其定义为上面它将输入字段解析为数组 cakephp convention 。
我的意思是User.0.address for first array element
User.1.address for second array element
User.2.address for third array element
等等。
现在
在控制器文件中。
<?php
function add()
{
$this->User->saveAll($this->data['User']);
}
是的,在这里你完成了同时保存多条记录。
我刚刚给了你cakephp的工作方式,你需要做的就是根据你的需要设置上面提示。
祝您好运......
干杯...
随意问......:)
答案 2 :(得分:1)
我想这个
php echo $this->Form->create('Agents', array('action' => 'send_money'));?>
应替换为
php echo $this->Form->create('Agent', array('action' => 'send_money'));?>
并使用saveall()代替save。