在cakephp中,我们如何指定哪个主题用于元素。我正在初始化Controller中的View对象。我需要将元素内容作为ajax响应传递。cakephp为控制器中的元素指定主题
控制器:
$view = new View($this);
$view->layout = 'theme2';
$view->theme = 'newNav';
foreach($ctps as $ctpName)
{
$ctp[] = $view->element($ctpName);
}
起初我还以为访问它作为
$ctp[] = $view->element('../Themed/new/Elements/'.$ctpName);
但它显然并不需要大约元素的目录服务。由于某些元素位于app/View/Elements中,有些元素位于app/ViewThemed/new/Elements /目录中。
请建议。
按Arilia的建议,我现在想
$this->viewClass = "Theme";
$this->viewPath = 'Elements';
$view = new View($this);
$view->theme = "new";
$view->layout = "theme";
$ctp = $view->element('userprofile');
echo json_encode($ctp);
die;
我想提出一个AJAX调用此代码。它返回 “找不到元素:元素/ userprofile.ctp”
我认为元素采用了您在控制器中设置的主题。所以在你的控制器中你必须编写'$ this-> theme ='new';' – arilia
'我正在初始化Controller中的View对象 - 你实际上在做什么?这是不正常的(例如,我从来没有这样做)。如果指定了主题,[主题文件如果存在则自动使用](http://book.cakephp.org/2.0/en/views/themes.html#themes)。请用您正在使用的CakePHP版本标记您的问题。 – AD7six
嗨阿里利亚, 根据您的建议,我浏览了视图和控制器Api。现在我正在使用相应的属性。我已经做出了改变,但它没有工作。我编辑了代码更改的问题。 –