用默认值将设置从视图传递到元素


Passing settings from view to element with default values

我试图传递这样的设置:

$mySettings = array(
    'settingOne' => 'someValue',
    'settingTwo' => 5,
    'settingThree' => true
);

从视图插入元素,如下所示:

echo $this->element('foobar', $mySettings);

如何在元素内部为它们设置默认值?

还是把它们放在别的地方更好?如果是,在哪里,如何?

谢谢。

appsController中编写如下默认代码

$mySettings = array(
    'settingOne' => 'someValue',
    'settingTwo' => 5,
    'settingThree' => true
);
$this->set('foobar', $mySettings);

如果你想修改$mySettings,那么你必须在控制器中编写你想要更改的代码。

你必须在

元素中使用foobar变量
$foobar['settingOne'];
$foobar['settingTwo'];
$foobar['settingThree'];

如果设置项是动态的,您可以尝试这样做:

function element($entry, $settings, $default = null) {
    if (isset($settings[$entry])) {
        return $settings[$entry];
    } else {
        return $default;
    }
}

如果设置项是静态的,最好定义一个类,每个项作为一个属性。

传入的键被转换为变量

所以就按

if (!isset($theConfigKey)) {
    $theConfigKey = ...
}