不移山的愚公 发表于 2016-1-13 18:01:41

CI表单验证类加载失败

         今天用CI表单验证类时报错,我是新浪SAE的运行环境,请各位大牛指点,谢谢。以下是代码和报错信息。

         一、代码:
         // 载入表单验证类
      $this->load->library('form_validation');
      //设置规则
      $this->form_validation->set_rules('indus_id','行业编码','required|exact_length|alpha_numeric');

      二、报错信息:
      A PHP Error was encountered      Severity: Notice      Message: Undefined property: IndusCtl::$form_validation      Filename: com/IndusCtl.php      Line Number: 85      Backtrace:    File: /data1/www/htdocs/492/level3/2015001/application/controllers/com/IndusCtl.php
    Line: 85
    Function: _error_handler    File: /data1/www/htdocs/492/level3/2015001/index.php
    Line: 292
    Function: require_once

张晓宇-业 发表于 2016-1-13 18:06:19

请各位大牛赐教:'(

Closer 发表于 2016-1-13 18:52:11

載入 $this->load->library('form_validation'); 前
試圖先載入 $this->load->helper(array('form', 'url')); 呢

不移山的愚公 发表于 2016-1-14 16:29:02

Closer 发表于 2016-1-13 18:52
載入 $this->load->library('form_validation'); 前
試圖先載入 $this->load->helper(array('form', 'url') ...

表单类加载了,不过我在application/config/autoload.php配置文件中自动加载的如下代码,有影响吗:
$autoload['helper'] = array('form', 'url');

Closer 发表于 2016-1-14 16:42:14

本帖最后由 Closer 于 2016-1-14 16:49 编辑

不移山的愚公 发表于 2016-1-14 16:29
表单类加载了,不过我在application/config/autoload.php配置文件中自动加载的如下代码,有影响吗:
$aut ...
不影響

可以提供整個控制器的代碼嗎 ?
比較方便判斷錯誤區塊

你可以將你不想透漏的部分刪掉

static/image/hrline/line3.png

2.x & 3.x 的語言包稍微不同
{field} & %s
會不會是這個原因 ?
 

不移山的愚公 发表于 2016-1-14 16:58:37

本帖最后由 Closer 于 2016-1-14 17:02 编辑

Closer 发表于 2016-1-14 16:42
不影響

可以提供整個控制器的代碼嗎 ?

    /**
   * indusadd
   * 增加行业信息
   *
   * @access    public
   * @since   1.0
   */
   public function indusadd(){

         // 载入表单验证类
      $this->load->library('form_validation');

      // var_dump($form_validation);
      // 我在此处输出对象,就报错,打印为NULL

      //设置规则
      $this->form_validation->set_rules('indus_id','行业编码','required|exact_length|alpha_numeric');

      //执行验证
      $status = $this->form_validation->run();

      if($status){
               $arr = array(
                "indus_id"=>$this->input->post('indus_id'),
                "indus_name"=>$this->input->post('indus_name'),
                "last_user"=>"10000001",
                "ts"=>date('Y-m-d H:i:s'),
            );
            $this->IndusDAO->insert_indus($arr);
      } else {
            $this->load->view('com/indusadd.html');
      }
   }

Closer 发表于 2016-1-14 17:09:43

不移山的愚公 发表于 2016-1-14 16:58


直接打印當然會報錯
因為它並沒有生成這個變數
$form_validation

註解掉 var_dump($form_validation); 後仍會報錯 ?
一樣的錯誤 ? 看看我上一篇的紅字,是不是那個原因 ?

不移山的愚公 发表于 2016-1-14 17:19:27

Closer 发表于 2016-1-14 17:09
直接打印當然會報錯
因為它並沒有生成這個變數
$form_validation


那段是我调试的代码,本来没有的,就报一样的错。

你说的红字部分是什么意思,我不太看得懂,麻烦深入解释一下,谢谢。

2.x & 3.x 的語言包稍微不同
{field} & %s
會不會是這個原因 ?

Closer 发表于 2016-1-14 17:35:22

不移山的愚公 发表于 2016-1-14 17:19
那段是我调试的代码,本来没有的,就报一样的错。

你说的红字部分是什么意思,我不太看得懂,麻烦深入解 ...

表單驗證類
驗證完後可以在 view 端顯示錯誤訊息
而這個訊息可以使用語言包轉換為中文 (預設英文)
所以我猜想你整個 CI 是不是從 2.x 升級到 3.x 後才出現這個錯誤
有可能來自於語言包沒有更新

不移山的愚公 发表于 2016-1-14 17:50:11

Closer 发表于 2016-1-14 17:35
表單驗證類
驗證完後可以在 view 端顯示錯誤訊息
而這個訊息可以使用語言包轉換為中文 (預設英文)


我再试试,谢谢你的耐心帮助。
我隐隐约约觉得跟我环境搭建在新浪SAE上有关。:Q
页: [1]
查看完整版本: CI表单验证类加载失败