用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1819|回复: 9
收起左侧

[版本 3.x] CI表单验证类加载失败

[复制链接]
发表于 2016-1-13 18:01:41 | 显示全部楼层 |阅读模式
         今天用CI表单验证类时报错,我是新浪SAE的运行环境,请各位大牛指点,谢谢。以下是代码和报错信息。

         一、代码:
         // 载入表单验证类
        $this->load->library('form_validation');
        //设置规则
        $this->form_validation->set_rules('indus_id','行业编码','required|exact_length[3]|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 CI中国手机版 | 显示全部楼层
请各位大牛赐教
发表于 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');

发表于 2016-1-14 16:42:14 | 显示全部楼层
本帖最后由 Closer 于 2016-1-14 16:49 编辑
不移山的愚公 发表于 2016-1-14 16:29
表单类加载了,不过我在application/config/autoload.php配置文件中自动加载的如下代码,有影响吗:
$aut ...

不影響

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

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



2.x & 3.x 的語言包稍微不同
{field} & %s
會不會是這個原因 ?
 
 楼主| 发表于 2016-1-14 16:58:37 | 显示全部楼层
本帖最后由 Closer 于 2016-1-14 17:02 编辑
Closer 发表于 2016-1-14 16:42
不影響

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

   
PHP复制代码
 /**
     * 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[3]|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');
        }
     }
复制代码

发表于 2016-1-14 17:09:43 | 显示全部楼层

直接打印當然會報錯
因為它並沒有生成這個變數
$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
會不會是這個原因 ?
发表于 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上有关。

本版积分规则