CakePhp很多很多下拉菜单

时间:2013-02-19 02:02:20

标签: php cakephp

我有一个巨大的表格,我会分段。每个部分都有自己的模型。我有大量的下拉菜单。它们有点类似,所以我想做的是能够通过调用php变量为它们添加选项。这将确保我没有拼写错误,如果需要更改,我可以在一个地方更改。

如果我有这样的语言下拉:

echo $this->Form->input(__('Language'), array(
    'options' => array('en' => 'English', 'fr' => 'Français')
));

如果我能做$ this-> Form->输入(__('语言'),$语言)会很好;然后在$ language中我也可以用变量添加这些语言。 $ languages = array('options'=> $ option1,$ option2 ...);类似的东西。

我只是想找到管理1000个下拉列表的最佳方法。

我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

在AppController中设置beforeRender回调中的语言选项: -

public function beforeRender() {

    parent::beforeRender();

    $this->set('languages', array('en' => 'English', 'fr' => 'Français'));

}

然后在相关视图中,您可以使用: -

$this->Form->input(__('Language'), $languages);

创建语言模型并将语言存储在其中并使用模型上的查找(“列表”)加载它们可能是有意义的。如果您的其他模型需要与某种语言相关联,那么您就可以在相关模型上使用$belongsTo = array('Language')关系并保存模型的language_id。然后,您的所有语言数据都将存储在数据库中,供您在一个地方进行更改。