duanou2016 2017-06-02 11:20
浏览 59
已采纳

cakephp 2.9.7数据验证无效

The problem is very simple but why it is complicating for me.I have written data validation also.But for empty fields also it is accepting the input.please check whether any error in my action.php.

Model/action.php

<?php
App::uses('AppModel', 'Model');

class Actions extends AppModel {
  public $validate = array(
        'value_to_plot' => array(
          'required'=>true,
            'message' => 'atleast select one measure'
        ),
        'column_name' => array(
          'required'=>true,
            'rule'=>array('notBlank'),
            'message' => 'atleast select one table'
          )

      );
}

?>

View/Actions/index.ctp

<div align="center">
<fieldset>
  <?php  echo $this->Form->create('valueToSend',array('type' => 'get'));?>
    <?php if(isset($_GET['table_name'])){ ?>
      <table class="table table-bordered table-hover table-striped">
        <?php echo $this->Form->hidden('table_name', array('hiddenField' => true, 'value'=> $_GET['table_name'],'id'=>'table_name'));
       echo $this->Form->hidden('chart', array('hiddenField' => true, 'value'=> "column3d",'id'=>"chart"));
        ?>
          <tr>
            <th>MEASURES</th>
            <td>
              <?php  echo $this->Form->select('value_to_plot',$measures1,array('class'=>'form-control','id'=>'measures','required'=>true),['empty' => 'choose one']);?>
            </td>

          </tr>
          <tr>
            <th>DIMENSIONS</th>
            <td>
              <?php echo  $this->Form->select('column_name[]',$measures2,array('multiple'=>'true','class'=>'form-control','id'=>'dimensions','required'=>true),['empty' =>'choose one']);?>
            </td>

          </tr>
        </table>
      <div style="text-align:center">
        <?php  echo $this->Form->end('submit'); ?>
      </div>
    <?php } ?>
</fieldset>
</div>

Controller/ActionsController.php

<?php
App::uses('AppController', 'Controller');

class ActionsController extends AppController {

  public function beforeFilter() {
    if(!isset($_SESSION['Auth']) && empty($_SESSION['Auth'])) {
    $userId = $_SESSION['Auth[User[id]]'];
    return $this->redirect(array('controller' => 'Users', 'action' => 'login'));
  }
}

  public Function index(){
    App::import('Model', 'ConnectionManager');
    $con = new ConnectionManager;
    $cn = $con->getDataSource('default');

    $tablequery="SELECT TABLE_NAME as table_name
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='phygital_visualize' AND TABLE_NAME != 'report'";
    $rows = $cn->query($tablequery);
    //$rows = $result->fetchAll('assoc');
    $dataToTable = [];
     foreach ($rows as $row) {
         $dataToTable[$row['TABLES']['table_name']] = $row['TABLES']['table_name'];
     }
   $this->set('table',$dataToTable);


   if(isset($_GET['table_name'])){
     $table_name = $_GET['table_name'];
     $column = "select column_name as name from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='$table_name' ";
     $result = $cn->query($column) ;
     foreach ($result as $key => $value) {
       foreach($value as $key => $value) {
        foreach($value as $key =>$value){
         $column_counts[$value] = $value;
         }
       }
    }

    $column_counts = array_unique($column_counts);
    //print_r($column_counts);
     $measures1=array();
     $measures2=array();
     $diff=array();
       foreach($column_counts as $key => $value){

         $sql="select * from $table_name where concat('',$value * 1 ) = $value limit 1";
        $resultset = $cn->query($sql) ;
        if(!empty($resultset)){

                if(!in_array($value, $measures1)){
                  $measures1[$value]= $value;
                }
        }

   }

   $measures2 = array_diff($column_counts,$measures1);
   $this->set('measures1',$measures1);
    $this->set('measures2',$measures2);
   }

   }
}

?>
  • 写回答

2条回答 默认 最新

  • duanfu6160 2017-06-05 07:45
    关注

    This will validate and save your data

    if ($this->request->is('post')) {
         $this->Actions->set($this->request->data);
         if ($this->Actions->save($this->request->data)) {
                // Set a session flash message and redirect.
         }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路