我正在为我的应用构建自定义帮助器。 在我试图插入元素的方法之一。 为此我正在使用:
$El = ClassRegistry::getObject('view');
$El->element('my_element', array('plugin'=>'my_plugin'));
在调试$ El之后我得到了错误的答案。
你们/女孩是否知道在帮助者中是否可以进行这种手术?
由于
答案 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 /逻辑和/或调用其他助手。