在customHelper中使用$ this->元素

时间:2012-10-17 13:32:38

标签: cakephp cakephp-2.0 helper

我正在为我的应用构建自定义帮助器。 在我试图插入元素的方法之一。 为此我正在使用:

$El = ClassRegistry::getObject('view'); 
$El->element('my_element', array('plugin'=>'my_plugin'));

在调试$ El之后我得到了错误的答案。

你们/女孩是否知道在帮助者中是否可以进行这种手术?

由于

3 个答案:

答案 0 :(得分:2)

在2.0中,视图对象未添加到类注册表中。在你的助手$this->_View中有对视图对象的引用。不建议在帮助者中包含元素。

答案 1 :(得分:0)

您可以将视图对象作为参数函数助手传递。例如:

class ComponentHelper extends AppHelper {
    public function checkboxes( $form, .... ) {
        ...
        $form->element( '...' );
        ...
    }
}

表格形式:

$this->Component->checkboxes( $this, .... );

:)

答案 2 :(得分:0)

在CakePHP 2中,如果试图访问帮助程序中的元素,则需要调用_View对象 - 例如:

$this->_View->Element($element, $options);

这不是很好,听起来你应该考虑直接使用一个元素来支持Helper。

例如:而不是$this->CustomHelper->method($var)只是按照正常echo $this->element('element', ['var' => $var]);从视图中调用元素,如果需要,它可以执行PHP /逻辑和/或调用其他助手。