CakePHP - 动态更改core.php变量' imageBaseUrl'

时间:2014-07-27 07:07:23

标签: cakephp cakephp-2.0

在CakePHP应用程序中,我有一个模型Acccount。我希望每个帐户在webroot / img文件夹中都有自己的子文件夹。我可以创建子文件夹没问题。

挑战是普遍确定哪个是当前的默认路径。我可以从Auth.User.account_id获取帐户ID。

通过引入Auth.User.account_id而不是修改每个View中的img路径,我认为最好通过读取core.php文件中的值来动态更改默认图像路径并更改' imageBaseUrl'所以它在整个应用程序中都可用。

但是,我还没有找到任何关于如何将变量引入core.php文件的文档。我知道这是一个旨在向应用程序提供变量的文件,所以也许它是不可能的。

我试图提供如下所示的Configure :: write值,但似乎没有在core.php文件中读取。

* Web path to the public images directory under webroot.
* If not set defaults to 'img/'
Configure::write('App.imageBaseUrl', 'img/'.Configure::write('imageurl').'/');

是否有某种方法可以将变量引入core.php文件,或者是否有另一种方法可以动态更改依赖于应用程序变量的图像路径?

2 个答案:

答案 0 :(得分:2)

您可以根据App.imageBaseUrl的{​​{1}}回调中的要求更改AppController的值。无需在该点之前更改它,因为该值仅在视图中需要。此外,您还可以使用会话组件。

答案 1 :(得分:0)

最好不要修改core.php。在app / Config / bootstrap.php文件的开头尝试此代码段:

App::uses('CakeSession', 'Model/Datasource');
Configure::write('App.imageBaseUrl', 'img/' .
    (CakeSession::check('Auth.User') ? CakeSession::read('Auth.User.account_id') . '/' : ''));