Concrete5 5.7:将变量从 Controller 传递到 View
Concrete5 5.7: Passing variable from Controller to View
所以我在下面制作了一个仪表板单页:
/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';
正在显示,所以基本上页面已打开并且 运行。
我做错了什么?
在控制器就位之前添加 singlepage
会导致它在没有警告的情况下与控制器分离,请尝试将其移除并重新添加。
这是一个路径和命名空间问题:
控制器的路径必须是:
/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
所以我在下面制作了一个仪表板单页:
/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';
正在显示,所以基本上页面已打开并且 运行。
我做错了什么?
在控制器就位之前添加 singlepage
会导致它在没有警告的情况下与控制器分离,请尝试将其移除并重新添加。
这是一个路径和命名空间问题:
控制器的路径必须是:
/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