我正在为我的应用程序构建一个自定义助手。在我尝试插入元素的一种方法中。为此,我正在使用:
$El = ClassRegistry::getObject('view');
$El->element('my_element', array('plugin'=>'my_plugin'));
调试 $El 后,我得到的响应是错误的。
你们知道这个操作是否可以在 Helper 中进行吗?
谢谢
我正在为我的应用程序构建一个自定义助手。在我尝试插入元素的一种方法中。为此,我正在使用:
$El = ClassRegistry::getObject('view');
$El->element('my_element', array('plugin'=>'my_plugin'));
调试 $El 后,我得到的响应是错误的。
你们知道这个操作是否可以在 Helper 中进行吗?
谢谢
在 2.0 中,视图对象没有添加到类注册表中。在您的助手$this->_View
中有对视图对象的引用。不建议在助手中包含元素。
您可以将视图对象作为参数函数助手传递。例如:
class ComponentHelper extends AppHelper {
public function checkboxes( $form, .... ) {
...
$form->element( '...' );
...
}
}
在表格中:
$this->Component->checkboxes( $this, .... );
:)
在 CakePHP 2 中,_View
如果尝试访问帮助程序中的元素,则需要调用该对象 - 例如:
$this->_View->Element($element, $options);
这并不是真正可取的,听起来您应该考虑直接使用元素来支持 Helper。
例如:而不是$this->CustomHelper->method($var)
像往常一样从视图中调用元素,echo $this->element('element', ['var' => $var]);
如果需要,它可以执行 PHP/逻辑和/或调用其他帮助程序。