0

我已经生成了一个代码生成的随机数并将所有数字保存在数据库中(该部分代码正在工作)但我在验证时遇到问题,没有在视图页面上输入任何 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 有问题

谢谢

4

1 回答 1

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')); 
}
于 2012-05-01T13:14:31.780 回答