我是使用symfony的新手,我似乎无法找到解决问题的正确方法。
问题是,我有一个后端模块,其中包含网站的所有配置(网站名称,每页项目数,默认样式)。我想配置generator.yml文件,所以在列表字段中我可以将max_per_page的值设置为不是静态数字,而是从数据库中获取。
我知道我可以在该文件中使用php代码,但由于它是缓存的,我不认为这是最好的解决方案。我的generator.yml文件如下所示:
generator:
class: sfDoctrineGenerator
param:
model_class: PodcastUsers
theme: admin
non_verbose_templates: true
with_show: false
singular: ~
plural: ~
route_prefix: podcast_users
with_doctrine_route: true
actions_base_class: sfActions
config:
actions: ~
fields: ~
list:
max_per_page: 10;
filter: ~
form: ~
edit: ~
new: ~
有没有办法从某个地方的代码初始化max_per_page值,所以如果我在db中更改那个数字,它会立即刷新?
提前致谢!
答案 0 :(得分:0)
幸运的是.yml文件可以解析为PHP,因此您可以插入PHP代码。不知道如何存储此max_per_page值,但您可以创建或编辑现有模型文件并添加检索值的方法,然后将其包含在yaml文件中。以下仅为示范:
class MyModelTable
{
public static function getMaxPerPage($myId)
{
// Assuming doctrine ORM
$q = Doctrine_Query::create()
->from('MyTable mt')
->where('mt.id = ?', array($myId));
$results = $q->fetchOne();
return $results['max_per_page'];
}
}
// Generator.yml
config:
...
list:
max_per_page: <?php echo MyModelTable::getMaxPerPage($someId) . PHP_EOL ?>
filter: ~
...