|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2011-1-9 02:30:46
|
显示全部楼层
回复 2# Hex
感谢 Hex 的帮助,以下是我的代码,为了测试,很简单。
首先给出将 rules 写在 controller 中的情景。
view 部分,文件名:test_form.php
HTML复制代码
<body>
<div id="erro-msg"><?php echo validation_errors(); ?></div>
<form action="<?php echo site_url('test/form');?>" method="post">
<input type="text" name="name" value="" />
<button type="submit">确定 </button>
</form>
</body>
复制代码
controller 部分,文件名:test.php
PHP复制代码
class Test extends MY_Controller {
function __construct () {
parent ::__construct ();
}
function form () {
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$config = array(
array(
'field' => 'name',
'label' => '姓名',
'rules' => 'required'
)
);
$this->form_validation->set_rules($config);
if ($this->form_validation->run() == FALSE) {
$this->load->view('test_form');
} else {
$this->load->view('formsuccess');
}
}
}
复制代码
以上代码经测试准确无误。
接下来给出将 rules 写在独立文件 form_validation.php 内,并存放于 application/config/ 文件夹内的情景。
这里是 form_validation.php 文件(确认没有忘记“<?php”标记。
PHP复制代码
<?php
$config = array(
array(
'field' => 'name',
'label' => '姓名',
'rules' => 'required'
)
);
/* End of file 'form_validation.php' */
复制代码
然后是修改后的 controller 部分
PHP复制代码
class Test extends MY_Controller {
function __construct () {
parent ::__construct ();
}
function form () {
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
if ($this->form_validation->run() == FALSE) {
$this->load->view('test_form');
} else {
$this->load->view('formsuccess');
}
}
}
复制代码
至于 view 部分没有变化,不再重复。
至此,按照 guide 的说法就是“Your validation rule file will be loaded automatically and used when you call the run() function.”,但是我运行时没有任何反应。而且这是最基本的写法,即便我进一步创建 sets of rules 或者 controller/method 的形式也依旧如此。不知是我哪里书写有误或者马虎了,请 Hex 指点。
Thanks. |
|