3

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

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

调试 $El 后,我得到的响应是错误的。

你们知道这个操作是否可以在 Helper 中进行吗?

谢谢

4

3 回答 3

4

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

于 2012-10-17T13:36:46.043 回答
0

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

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

在表格中:

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

:)

于 2016-04-06T02:03:28.527 回答
0

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

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

这并不是真正可取的,听起来您应该考虑直接使用元素来支持 Helper。

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

于 2016-04-06T03:44:24.250 回答