在自定义帮助程序中使用 $this->元素



我正在为我的应用程序构建一个自定义帮助程序。 在我尝试插入元素的方法之一上。 为此,我正在使用:

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

调试$El后,我得到的响应为 false。

你们男生/女生知道这个操作在助手中是否可行吗?

谢谢

在 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);

这实际上不是可取的,听起来您应该考虑直接使用一个元素来支持帮助程序。

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

相关内容

最新更新