创建CakePHP自定义配置
我正在尝试存储应用程序的配置设置。要存储的详细信息应该在整个应用程序中都可用,并且应该可以对其进行更新。详细信息的示例包括徽标图像的链接和联系人详细信息 首先,我将细节存储在数据库中,创建了一个模型和控制器。但是,由于徽标位于每个页面上,因此需要在每个页面加载时查询数据库创建CakePHP自定义配置,php,cakephp,cakephp-1.3,Php,Cakephp,Cakephp 1.3,我正在尝试存储应用程序的配置设置。要存储的详细信息应该在整个应用程序中都可用,并且应该可以对其进行更新。详细信息的示例包括徽标图像的链接和联系人详细信息 首先,我将细节存储在数据库中,创建了一个模型和控制器。但是,由于徽标位于每个页面上,因此需要在每个页面加载时查询数据库 我已经读过关于Configure类的文章,但是我不能让它太过有效。谁能解释一下我如何使用Configure将这些配置变量存储在一个文件中,并在文件中读取和更新它们。我已经看过烹饪手册和API,但不是很清楚。你可以在应用程序控制
我已经读过关于Configure类的文章,但是我不能让它太过有效。谁能解释一下我如何使用Configure将这些配置变量存储在一个文件中,并在文件中读取和更新它们。我已经看过烹饪手册和API,但不是很清楚。你可以在应用程序控制器的beforeFilter中循环使用设置表,使用名称作为写入设置的方式 像这样:
<?php
$settings = Cache::read('AppSettings');
if(!$settings){
$settings = $this->Settings->find('all');
Cache::write('AppSettings', $settings);
}
foreach($settings as $setting){
Configure::write('Settings.' . $setting['Setting']['name'], $setting['Setting']['value']);
}
?>
因此,您将拥有一个包含id、name和value字段的数据库,其中name是用于获取配置的名称,value是您期望从中获得的值
字段“name”值为“sitename”,字段“value”值为“MySite”的行
可以使用Configure::read('Settings.sitename')调用代码>并将返回“MySite”
然后在设置模型中,放置Cache::delete('AppSettings')在afterSave
方法中的code>
. 这样,当更新或添加记录时,缓存将被破坏,设置将被重新缓存和重新配置。非常好的解决方案@Kevin,但是您的代码中有一个小错误,在Configure::write函数的foreach循环中,它应该是$setting[][(没有尾随的s)