我正在使用插件(在本例中为Authake),并且我想覆盖/扩展某些功能,但是我不确定如何去做。我设法弄清楚了如何自定义视图(我创建了一个文件夹“ / app / views / plugins / authake”,但我想知道如何修改/覆盖/扩展插件的模型和组件。
我猜您想扩展模型的功能,还是扩展插件的行为?
例如,我们可以扩展Sequence行为的功能,该行为是Sequence插件的一部分,如下所示:
在app / models / behaviors中创建一个新文件,并将其命名为extended_sequence.php
在此文件中,我们将创建一个ExtendedSequenceBehavior类,该类扩展SequenceBehavior并覆盖beforeFind方法。最终看起来像:
<?php
/**
* Import the SequenceBehavior from the Sequence Plugin
*/
App::import('Behavior', 'Sequence.Sequence');
/**
* Extended Sequence Behavior
*/
class ExtendedSequenceBehavior extends SequenceBehavior
{
/**
* Overrides the beforeFind function
*/
public function beforeFind(&$model, $queryData)
{
/**
* Do something different here such as modify the query data
*/
/**
* You could still call the original function as well
*/
parent::beforeFind(&$model, $queryData);
}
}
?>
Run Code Online (Sandbox Code Playgroud)
注意,在定义ExtendedBehavior类之前,我们必须使用Cake的App :: import导入Sequence行为。
更新模型以使用扩展类:
var $actsAs = array('ExtendedSequence');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1534 次 |
| 最近记录: |