CakePHP 3:Class'配置'找不到

时间:2015-10-30 19:22:28

标签: cakephp cakephp-3.0 cakephp-3.1

我昨天刚刚开始使用CakePHP v3.1.3,而且我一次只能在我的CakePHP 2.4.2网站上迁移一小部分。主要是试图了解变化。我遇到了Configure::read()的问题。

一些背景信息:我的数据库中有 SettingsSite SettingsSiteHeaders SettingsSitesOptions 表,我还为那些表做了相应的表对象。在我的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'));
    }

我的问题是在我的视图中正确显示值。

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

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

我收到了&#34; 类&#39;配置&#39;在插件中找不到/默认/ src / Template / Layout / default.ctp &#34;错误信息。

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

use Cake\Core\Configure;

错误仍然存​​在。

3 个答案:

答案 0 :(得分:7)

只需使用

use Cake\Core\Configure;

在你的控制器上

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

$config = Configure::read('App.namespace');
debug($config);

答案 1 :(得分:3)

只需在app控制器的beforeFilter中将设置视为一个视图变量:)

答案 2 :(得分:2)

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

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

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