【问题标题】:Adding dynamic form field options to FuelPHP model properties向 FuelPHP 模型属性添加动态表单字段选项
【发布时间】:2014-04-07 11:08:33
【问题描述】:

我正在 FuelPHP 的模型 _properties 变量中创建一个选择表单元素:

protected static $_properties = array(
    'category_id' => array(
        'data_type' => 'int',
        'label' => 'Category',
        'form' => array(
            'type' => 'select',
            'options' => array()
        )
    )
);

我想将[category_id][form][options] 设置为SQL 查询的结果,但这显然不能在类声明中完成,我尝试使用__construct() 修改变量,此代码如下但产生了错误。

 function _construct() {

     parent::__construct();

     self::$_properties['category_id']['form']['options'] = array('a');

}

我的问题是,如何使用 FuelPHP 将字段选项设置为动态?

【问题讨论】:

    标签: php orm fuelphp


    【解决方案1】:

    你快到了。 Fuel 提供了一个名为 init 的静态构造函数,它允许您分配静态属性。

    function _init() {
    
         parent::_init();
    
         self::$_properties['category_id']['form']['options'] = array('a');
    
    }
    

    【讨论】:

    • 啊!对,非常接近,谢谢:D。如果我保留parent::_init();,则会收到以下错误Error - Invalid method call. Method _init does not exist. in /Users/beneverard/Dropbox/Business/Web/Projects/Neil White/ER Books/fuel/packages/orm/classes/model.php on line 537。我的模型声明看起来像这样class Model_Book extends \Orm\Model {
    • 查看文档后,我似乎不必致电 parent::_init();... 如果我不这样做,它似乎不会引起我的问​​题。
    • 如果您的模型extending 有自己的_init() 方法,您只需要拥有parent::_init()。如果您的父类没有,则可以安全地忽略。
    • 非常好,考虑到我没有发布模型代码,这是一个公平的假设。非常感谢乌鲁 :-)
    猜你喜欢
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多