Php 在表单验证中使用变量';字段';内码点火器

Php 在表单验证中使用变量';字段';内码点火器,php,codeigniter,validation,Php,Codeigniter,Validation,我试图了解是否有一种方法可以在Codeigniter表单验证中使用“field”中的变量 当我使用文本字符串时,表单验证工作正常,如前两个数组中“product_name”和“category_id”字段所示,但当我尝试使用下面第三个数组中的变量时,表单验证会中断 以下是函数中的代码、加载表单和验证: $this->load->library('form_validation'); $this->form_validation->set_rules($this->a

我试图了解是否有一种方法可以在Codeigniter表单验证中使用“field”中的变量

当我使用文本字符串时,表单验证工作正常,如前两个数组中“product_name”和“category_id”字段所示,但当我尝试使用下面第三个数组中的变量时,表单验证会中断

以下是函数中的代码、加载表单和验证:

$this->load->library('form_validation');
$this->form_validation->set_rules($this->add_product_page_one);
定义表单规则的数组:

private $add_product_page_one = array(
    array(
        'field'   => 'product_name', 
        'label'   => 'Product Name', 
        'rules'   => 'required|max_length[255]|trim|xss_clean'
    ),
    array(
        'field'   => 'category_id',
        'label'   => 'Category', 
        'rules'   => 'required|integer'
    ),
    array(
        'field'   => $this->config->item('prod_filter_db_1'), 
        'label'   => $this->config->item('prod_filter_name_1'), 
        'rules'   => 'integer'
    )
);
错误消息:

Parse error: syntax error, unexpected '$this' (T_VARIABLE) in
 /Applications/MAMP/htdocs/appname/application/modules/company/controllers/add.php 

正如我在评论中所说的那样


不能将变量指定给属性。属性只能保存常量/静态值,不能保存动态值

您可以创建私有方法而不是属性,并确保它返回数组规则

private function add_product_page_one() {
    return array(
        array(
            'field' => 'product_name',
            'label' => 'Product Name',
            'rules' => 'required|max_length[255]|trim|xss_clean'
        ) ,
        array(
            'field' => 'category_id',
            'label' => 'Category',
            'rules' => 'required|integer'
        ) ,
        array(
            'field' => $this->config->item('prod_filter_db_1') ,
            'label' => $this->config->item('prod_filter_name_1') ,
            'rules' => 'integer'
        )
    );
}
然后你可以这样使用它:

$this->load->library('form_validation');
// call the private method
$this->form_validation->set_rules($this->add_product_page_one());

不能将变量指定给属性。属性只能保存常量/静态值,不能保存动态值。好的,谢谢你让我知道。对于如何处理这个问题,你有什么建议吗?这是一个白标签软件产品,将有几个迭代,表单上的一些字段根据迭代的不同而不同。我们的目标是保持代码不变(除了配置文件中定义的变体),让我们知道这些变量是在哪里定义的?它们是在配置文件中定义的,我们实际上这样称呼它们:$this->config->item('prod_filter_db_1'),我编辑了这个问题以反映这一点。@RahilWazir感谢您的反馈。这可能是我们必须更详细地考虑的问题,并提出一个适合我们特定结构的解决方案。但是,如果有人遇到过同样的问题,那么听听您解决问题的方法会很有帮助。