5

我昨天刚开始使用 CakePHP v3.1.3,我正在一次迁移我的 CakePHP 2.4.2 站点的一小部分。主要是想了解这些变化。我有一个问题Configure::read()

一些背景信息:我的数据库中有SettingsSiteSettingsSiteHeadersSettingsSitesOptions表,我还为这些表创建了相应的表对象。在我的 SettingsSiteTable 类中,我有一个检索存储在数据库中的设置的方法。一切都很好,下面的代码在我的AppController中工作没问题。

<?php
namespace App\Controller;

use Cake\Controller\Controller;
use Cake\Event\Event;
use Cake\Core\Configure;

class AppController extends Controller{

    public function beforeFilter(Event $event){
        debug(Configure::read('SettingsSite.title'));
    }

我在获取值以在我的视图中正确显示时遇到问题。

我的主题默认布局中有以下代码,位于plugins/Default/src/Template/Layout/default.ctp

<title>
    <?php
        echo $this->fetch('title') . ' | ' .
        Configure::read('SettingsSite.title');
    ?>
</title>

我收到了“在 plugins/Default/src/Template/Layout/default.ctp 中找不到 Class 'Configure' ”错误消息。

所以我然后去了AppView.php文件并在命名空间声明下添加了以下行:

use Cake\Core\Configure;

错误仍然存​​在。

4

3 回答 3

7

只需使用

use Cake\Core\Configure;

在您的控制器顶部

此外,如果您在 app 文件夹中有自定义配置文件。您可以在 Bootstrap 文件中加载它并像这样加载配置;

$config = Configure::read('App.namespace');
debug($config);
于 2016-02-21T21:14:44.747 回答
3

只需在应用程序控制器的 beforeFilter 中将您的 Settings 设置为视图变量 :)

于 2015-11-04T15:37:24.997 回答
2

在您的布局上使用下面的行。这对我有用:

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

<title>
    <?php
        echo $this->fetch('title') . ' | ' .
        Configure::read('SettingsSite.title');
    ?>
</title>
于 2017-03-27T06:26:22.930 回答