0

这是我的控制器:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->model('user_model');
    }

    public function index() {
        redirect('user/login');
    }

    public function login() {
        $this->load->library('form_validation', '', 'fv');
        var_dump($this);
        $this->fv->set_rules('nick_name', 'Nick Name', 'trim|required|max_length[12]|min_length[4]');
        $this->fv->set_rules('password', 'Password', 'trim|required|md5');
    }
}
?>

我基本上是在写一个登录控制器。在登录功能中,在此之后我加载了视图等。但直到这里,我收到以下错误:

A PHP Error was encountered
Severity: Notice
Message: Undefined property: User::$fv
Filename: controllers/user.php
Line Number: 23

我已经将控制器中的所有其他内容有效地注释到我上面粘贴的内容中。我不明白问题出在哪里。谢谢。

[编辑]

在 var 转储 $this 对象时,我发现了更不寻常的事情。对象“fv”没有在 $this 对象中定义,而是在 $this->user_model 对象下定义。所以 isset($this->fv) 返回 false 并且 isset($this->user_model->fv) 返回 true。是的,我尝试了 $this->load->library('form_validation') 而不是将其命名为“fv”,结果保持不变。

4

1 回答 1

0

您的控制器名称应命名为 user.php 并且它应位于控制器文件夹中。

尝试 CI 推荐的编码风格,例如,

$this->load->library('form_validation');

$this->form_validation->set_rules(); ETC..

于 2012-10-06T09:52:27.237 回答