8

当我加载模型并从表中获取行时,我的表单验证错误不会在视图文件中显示消息。这是我的代码。

        $this->form_validation->set_rules('bookCategoryId', 'Book SubCategory Id', 'trim|required');
        $this->form_validation->set_rules('bookSubCategoryId', 'Book SubCategory Id', 'trim|required');
        $this->form_validation->set_rules('bookSubCategoryName', 'Book SubCategory Name', 'trim|required');
if ($this->form_validation->run() == FALSE) {
        /* Load Model */
        $this->load->model('book_category');

        /* Get Categories */
        $template_data['mainContentData']['book_categories'] = $this->book_category->get_all_categories();

        /* set view page to be called  */
        $template_data['mainContent'] = 'admin_add_book_subcategory';

        /* Load Template */
        $this->template($template_data);
    }

如果我排除这两行,我的表格可以正常工作

        /* Load Model */
        $this->load->model('book_category');

        /* Get Categories */
        $template_data['mainContentData']['book_categories'] = $this->book_category->get_all_categories();

比我的验证显示错误。我不知道问题出在哪里?

4

3 回答 3

6

你应该使用validation_errors函数

<?php echo validation_errors(); ?>

文档 3.x: validation_errors

文档 2.x:form_validation

于 2013-09-02T12:55:41.607 回答
0

尝试将其更改为:

        $this->load->model('Book_category');

        /* Get Categories */
        $template_data['mainContentData']['book_categories'] = $this->Book_category->get_all_categories();

根据 CI 文档,模型首字母大写

参考:http ://ellislab.com/codeigniter/user-guide/general/models.html

这是来自他们的参考页面:

模型类存储在您的 application/models/ 文件夹中。如果您想要这种类型的组织,它们可​​以嵌套在子文件夹中。

模型类的基本原型是这样的:

class Model_name extends CI_Model {

    function __construct()
    {
        parent::__construct();
    } 
} 

其中 Model_name 是您的班级的名称。类名的第一个字母必须大写,其余部分小写。确保您的类扩展了基础模型类。

文件名将是您的类名的小写版本。例如,如果您的课程是这样的:

class User_model extends CI_Model {

    function __construct()
    {
        parent::__construct();
    } 

}

您的文件将是这样的:

application/models/user_model.php Loading a Model

您的模型通常会从您的控制器函数中加载和调用。要加载模型,您将使用以下函数:

$this->load->model('Model_name');
于 2013-09-02T12:59:17.587 回答
0

尝试这个....

    /* Load Model */
    $this->load->model('book_category');

    /* Get Categories */
    $template_data['mainContentData']['book_categories'] = $this->book_category->get_all_categories();

    /* set view page to be called  */
    $template_data['mainContent'] = 'admin_add_book_subcategory';


    $this->form_validation->set_rules('bookCategoryId', 'Book SubCategory Id', 'trim|required');
    $this->form_validation->set_rules('bookSubCategoryId', 'Book SubCategory Id', 'trim|required');
    $this->form_validation->set_rules('bookSubCategoryName', 'Book SubCategory Name', 'trim|required');

if ($this->form_validation->run()) {

        print_r($_POST); exit;
    }            
        /* Load Template */
  $this->template($template_data);
于 2015-09-18T06:08:40.250 回答