CakePHP重写插件方法
我正在CakePHP项目中使用CakeDC标记插件。我正在使用输出链接列表,但此帮助程序没有按我希望的方式格式化链接。具体来说,CakePHP重写插件方法,cakephp,cakephp-2.4,Cakephp,Cakephp 2.4,我正在CakePHP项目中使用CakeDC标记插件。我正在使用输出链接列表,但此帮助程序没有按我希望的方式格式化链接。具体来说,\u tagUrl($tag$options)方法是使用命名参数而不是使用查询字符串生成链接 而不是 $options['url'][$options['named']] = $tag[$options['tagModel']]['keyname']; 我通过以下更改获得所需的行为 $options['url']['?'][$options['named']] = $
\u tagUrl($tag$options)
方法是使用命名参数而不是使用查询字符串生成链接
而不是
$options['url'][$options['named']] = $tag[$options['tagModel']]['keyname'];
我通过以下更改获得所需的行为
$options['url']['?'][$options['named']] = $tag[$options['tagModel']]['keyname'];
覆盖此方法的最佳实践方式是什么?我是否创建了另一个扩展TagCloudHelper的类?那么,我该如何告诉CakePHP使用我的类而不是插件的类呢?我能够用自己的类覆盖助手
// app/View/Helper/MyTagCloudHelper.php
App::uses('TagCloudHelper', 'Tags.View/Helper');
class MyTagCloudHelper extends TagCloudHelper {
protected function _tagUrl($tag, $options) {
$options['url']['?'][$options['named']] = $tag[$options['tagModel']]['keyname'];
return $options['url'];
}
}
然后在控制器中
public $helpers = array('TagCloud' => array('className'=>'MyTagCloud'));
className选项允许您为帮助者的名称添加别名