Concrete5 5.7: Передача переменной из контроллера в представление

Таким образом, я сделал одну страницу панели инструментов под:

/application/single_pages/dashboard/newsletter.php

и

/application/single_pages/dashboard/view.php

Контроллер находится под:

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

Контроллер выглядит так:

<?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 не отображается в представлении.

echo 'something'; показывает, так что в основном страница запущена и работает. Что я делаю неправильно?

2 ответа

Решение

Это была проблема пути и пространства имен:

Путь для контроллера должен быть:

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

вместо:

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

Для контроллера путь его единственного числа single_page но для самой единственной страницы его множественного числа single_pages


При расширении от ядра нам нужно адаптировать пространство имен к:

Application\Controller\SinglePage\Dashboard

вместо:

Concrete\Controller\SinglePage\Dashboard

Добавление singlepage перед тем, как контроллер будет установлен, вы сможете без предупреждения отсоединить его от контроллера, попробуйте удалить его и снова добавить.

Другие вопросы по тегам