В приложении CakePHP у меня есть модель Acccount. Я хочу, чтобы у каждой учетной записи была собственная подпапка в папке webroot / img. Я могу без проблем создавать подпапки.
Проблема состоит в том, чтобы универсально определить, какой путь является текущим по умолчанию. Я могу получить идентификатор учетной записи из Auth.User.account_id.
Вместо того, чтобы изменять путь img в каждом представлении, где это требуется, путем введения Auth.User.account_id, я подумал, что было бы лучше динамически изменить путь к изображению по умолчанию, прочитав значение в файле 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 ответа
При необходимости вы можете изменить значение для App.imageBaseUrl
в обратном вызове beforeRender()
вашего AppController
. Нет необходимости изменять его до этого момента, поскольку значение требуется только в представлениях. Кроме того, у вас будет доступен компонент сеанса.
Лучше не изменять 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') . '/' : ''));
Похожие вопросы
Новые вопросы
cakephp
CakePHP - это веб-среда быстрой разработки с открытым исходным кодом для PHP, предоставляющая расширяемую архитектуру для разработки, обслуживания и развертывания приложений. Он использует общеизвестные шаблоны проектирования, такие как MVC и ORM, в рамках соглашения о конфигурации.