具体5 5.7 : Passing variable from Controller to View

标签 concrete5 concrete5-5.7

所以我在下面制作了一个仪表板单页:

/application/single_pages/dashboard/newsletter.php

和一个

/application/single_pages/dashboard/view.php

Controller 在:

/Concrete/controllers/single_pages/dashboard/newsletter.php

Controller 看起来像:

<?php
namespace Concrete\Controller\SinglePage\Dashboard;
use Concrete\Core\Multilingual\Page\PageList;
use \Concrete\Core\Page\Controller\DashboardPageController;
class Newsletter extends DashboardPageController {
    public function view() {
        $testVar = array(
            'one' => 'some',
            'two' => 'value',
            'three' => 'foo',
            'four' => 'bar'
        );
        $this->set('test', $testVar);
    }
}

/application/single_pages/dashboard/newsletter.php 看起来像:

<?php defined('C5_EXECUTE') or die("Access Denied.");
echo 'something';
print_r($test);

/application/single_pages/dashboard/view.php 看起来像:

<?php defined('C5_EXECUTE') or die("Access Denied.");

问题:

局部变量 $test 没有出现在 View 中。

echo 'something'; 正在显示,所以基本上页面已启动并运行。 我做错了什么?

最佳答案

这是一个路径和命名空间问题:

Controller 的路径必须是:

/application/controllers/single_page/dashboard/newsletter.php

代替:

/concrete/controllers/single_pages/dashboard/newsletter.php

对于 Controller 路径,它是单数 single_page 但对于 Single Page 本身,它是复数 single_pages


从核心扩展时,我们需要将命名空间适配为:

Application\Controller\SinglePage\Dashboard

代替:

Concrete\Controller\SinglePage\Dashboard

关于具体5 5.7 : Passing variable from Controller to View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29864930/

相关文章:

seo - Concrete5 对搜索引擎可抓取的 block 的权限?

javascript - 将标准 url 更改为 Concrete5 中的特定自定义 URL

javascript - CKEditor 在样式中插入不可编辑的 HTML

php - 安装具体版本 5.6.3.4

Concrete5 - 如何获取 page_list 编辑屏幕以读取自定义字段中的值

javascript - 在 Concrete5 中编辑 block

php - 混凝土5 5.7 : using a ServiceProvider cross-package

具体5:如何通过图像 block 显示视网膜图像?