我已经生成了一个代码生成的随机数并将所有数字保存在数据库中(该部分代码正在运行)但我在验证时遇到问题而没有在视图页面上输入任何no重定向此url admin_manage_epin.ctp,验证无法正常工作
admin_create_epin.ctp(视图)
<tr>
Add E-pin:(No of E-Pin)
<td><?php echo $this->Form->input('e_pin',array('label'=>false));?></td>
</tr>
epins_controllers.php(控制器)
public function admin_create_epin(){
if(!empty($this->data)){
$limit = $this->data['Epin']['e_pin'];
for($i=0;$i<$limit;$i++)
{
$random = substr(number_format(time() * rand(),0,'',''),0,11)."<br/>";
$this->data['Epin']['e_pin'] = $random;
$this->Epin->id =null;
$this->Epin->save($this->data);
}
$this->Session->setFlash("Epin has been added");
$this->Redirect(array('action'=>'admin_manage_epin'));
}
}
epin.php(模型)
<?php class Epin extends appModel{
var $name ="Epin";
var $validate = array(
'e_pin'=>array(
'rule'=>'notEmpty',
'message'=>'Please type No of epin'
));
}
?>
我想我的控制器功能admin_create_epin
有问题感谢
答案 0 :(得分:0)
您应该检查实际字段是否为空 - 因为提交表单仍然会有一个数组:
if(!empty($this->data['Epin']['e_pin'])) {
在for()
循环中,您应该使用create()
并且不要设置id
:
for($i=0;$i<$limit;$i++) {
$this->Epin->create();
$random = substr(number_format(time() * rand(),0,'',''),0,11)."<br/>";
$this->data['Epin']['e_pin'] = $random;
//...
您的redirect
应为小写:
$this->redirect(...
很难理解你实际要问的是什么,但是如果你试图重新定位表单是否为空,那么重定向应该是另一个级别:
}
$this->Session->setFlash("Epin has been added");
$this->Redirect(array('action'=>'admin_manage_epin'));
}