'application' => array(
'controllersDir' => __DIR__ . '/../../app/controllers/',
'modelsDir' => __DIR__ . '/../../app/models/',
'viewsDir' => __DIR__ . '/../../app/views/templates/$dynamic_template_folder',
'pluginsDir' => __DIR__ . '/../../app/plugins/',
'libraryDir' => __DIR__ . '/../../app/library/',
'cacheDir' => __DIR__ . '/../../app/cache/',
'baseUri' => '/phalcon_project/',
)
如何从配置文件中的数据库中获取$dynamic_模板_文件夹
这是一个相当奇怪的问题。通常,您的配置是在执行任何逻辑之前定义的,因此在配置文件中执行此操作的唯一方法是打开与数据库的连接,获取值并将其附加到/../../app/views/templates/
。
更好的方法是在定义查看服务时在 DI 中执行此操作。如果可能,还可以考虑缓存数据库调用或将数据存储在会话中,以避免不必要的调用。
$di->setShared('view', function () use ($di, $configuration) {
$templateDir = $di->db->…; // Load the necessary details from the db.
$view = new View();
$view->setViewsDir($configuration->viewsDir . $templateDir);
$view->registerEngines([…]);
return $view;
});