Php 按后端编辑app.yml中的值
sfConfig::get('app\u max\u jobs\u on\u category') 我如何使管理员可以在后端编辑此值(最大作业数在类别上)?Php 按后端编辑app.yml中的值,php,symfony1,doctrine,symfony-1.4,Php,Symfony1,Doctrine,Symfony 1.4,sfConfig::get('app\u max\u jobs\u on\u category') 我如何使管理员可以在后端编辑此值(最大作业数在类别上)? 是否每个用户都可以仅为自己编辑此内容?我认为您最好为这些设置创建一个数据库模型。例如,您可以在过滤器中查询数据库(请参阅) 例如: # apps/frontend/config/app.yml all: active_days: 30 max_jobs_on_homepage: 10 max_jobs_on_c
是否每个用户都可以仅为自己编辑此内容?我认为您最好为这些设置创建一个数据库模型。例如,您可以在过滤器中查询数据库(请参阅) 例如:
# apps/frontend/config/app.yml
all:
active_days: 30
max_jobs_on_homepage: 10
max_jobs_on_category: 20
示例过滤器代码:
AppSetting:
columns:
id:
type: integer(4)
primary: true
name:
type: string(100)
notnull: true
value:
type: string(100)
当然,在每个请求中加载所有这些设置都会有一些额外的开销,您可以根据需要查询它们:
$settings = Doctrine_Core::getTable('AppSetting')->fetchAll();
foreach ($settings as $setting) {
sfConfig::set($setting->getName(), $setting->getValue());
}
或者您可以更进一步,为它们创建一些序列化缓存。但最后,如果您需要从web界面编辑它们,我会选择一个数据库解决方案。非常感谢,缓存有什么用处?我必须在哪里添加过滤代码?在何处操作?请查看链接以了解有关筛选器以及如何创建筛选器的更多信息。我没有任何现成的创建缓存的示例,您必须自己研究一下可能的缓存解决方案。您应该将名称作为主键。id字段是不必要的。
$settings = Doctrine_Core::getTable('AppSetting')->fetchAll();
foreach ($settings as $setting) {
sfConfig::set($setting->getName(), $setting->getValue());
}
Doctrine_Core::getTable('AppSetting')->findOneByName('some_setting')->getValue();