向 FuelPHP 模型属性添加动态表单字段选项
Posted
技术标签:
【中文标题】向 FuelPHP 模型属性添加动态表单字段选项【英文标题】:Adding dynamic form field options to FuelPHP model properties 【发布时间】: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 将字段选项设置为动态?
【问题讨论】:
【参考方案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();
... 如果我不这样做,它似乎不会引起我的问题。
如果您的模型extend
ing 有自己的_init()
方法,您只需要拥有parent::_init()
。如果您的父类没有,则可以安全地忽略。
非常好,考虑到我没有发布模型代码,这是一个公平的假设。非常感谢乌鲁 :-)以上是关于向 FuelPHP 模型属性添加动态表单字段选项的主要内容,如果未能解决你的问题,请参考以下文章