2016-06-11 185 views
0

我正在开发一个有点大的CakePHP 3项目。CakePHP 3:定义全局变量变量

我想通过将所有媒体文件与核心应用程序分离,尽可能保持我的应用程序尽可能干净,这就是为什么我必须将所有媒体文件存储在单独子域名为media.myproject.com,并且项目可从www.myproject.com访问。

另外在media.myproject.com可能有许多directories作为

/root 
|- users 
    |- avatar 
    |- cover 
|- services 
    |- logo 
    |- banner 
    |- slides 
|- clients 
    |- logo 
    |- avatar 
|- etc 
    |- etc 
    |- etc 
    |- etc 

现在,为了能够访问应用程序view文件,我想设置,我可以在任何view使用像

<img src="<?= $media.$mediaUser.$userAvatar.$user->avatar ?>" /> 
全局变量

我该怎么做?

回答

0

你可以做一些这样的:

的config/bootstrap.php中

Configure::write('Media', array(
     'users' => array(
      'avatar' => 'media.myproject.com/users/avatar/', 
      'cover' => 'media.myproject.com/users/cover/' 
     ), 
     'services' => array(
      'logo' => 'media.myproject.com/services/logo/', 
      'banner' => 'media.myproject.com/services/banner/' 
     ) 
)); 

YourView.ctp

<?php use Cake\Core\Configure; ?> 

<img src="<?= Configure::read('Media.users.avatar').$user->avatar ?>" /> 
+0

哇这就是伟大的。非常感谢。 –

+0

使用'<?php use Cake \ Core \ Configure; ?>''default.ctp'布局不起作用,但它可以将它添加到视图文件中。它怎么可以在'default.ctp'中使用 –

+0

也试过。但默认情况下不起作用:/ – Isengo