gpt4 book ai didi

cakephp - 将数据从 CakePHP 组件传递给助手

转载 作者:行者123 更新时间:2023-12-04 22:50:35 25 4
gpt4 key购买 nike

我需要在组件和助手之间共享数据。我正在将我自制的支付服务表单数据生成器转换为 CakePHP 插件,我希望能够从 Controller (使用组件)填写支付数据并使用帮助程序打印出数据。

到目前为止,我尝试过的所有方法都感觉有点太hacky了,所以让我问你:有没有什么优雅的方法可以将数据从组件传递给助手?

编辑:

我通过在组件初始化期间将原始 formadata 类实例添加到 ClassRegistry 解决了这种特殊情况。这样,助手也可以使用 ClassRegistry 访问实例。

但是,这仅适用于对象,因此问题仍然存在。

最佳答案

遇到类似的问题,我发现这个解决方案最适合我。

您可以将助手的 __construct 方法与 $controller->helpers 数组一起使用。

Helper::_construct()Component::beforeRender 之后调用,可以修改$controller->helpers['YourHelperName']数组将数据传递给您的助手。

组件代码:

<?php

public function beforeRender($controller){
$controller->helpers['YourHelperName']['data'] = array('A'=>1, 'B'=>2);
}
?>

helper 代码:
<?php

function __construct($View, $settings){
debug($settings);
/* outputs:
array(
'data' => array(
'A' => (int) 1,
'B' => (int) 2
)
)
*/
}

?>

我使用的是 CakePHP 2.0,所以这个解决方案应该针对早期版本进行测试。

关于cakephp - 将数据从 CakePHP 组件传递给助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6562053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com