0

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

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

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

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

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

我怎么能那样做?

4

1 回答 1

0

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

public function beforeRender() {

    parent::beforeRender();

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

}

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

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

创建一个语言模型并将您的语言存储在其中并通过在模型上使用 find('list') 加载它们可能是有意义的。如果您的其他模型需要链接到一种语言,那么您可以$belongsTo = array('Language')在相关模型上使用关系并为模型保存language_id。然后,您所有的语言数据都将存储在数据库中,供您在一个地方进行更改。

于 2013-02-19T11:32:39.057 回答