我在哪里编写将由多个模型(cakephp)调用的(常用)函数?

时间:2014-07-05 04:18:09

标签: php cakephp before-save cakephp-model

假设我有 Model1 Model2 。在每个 beforeSave()中,我想调用函数 f()

  1. 我必须在哪里放 f()
  2. 如何在模型的 beforeSave()函数(语法问题)中调用它?
  3. PS:我想做一些事情,比如在将数据保存到数据库之前更改上传文件的名称。我知道如何上传,但不知道在哪里放置该方法,所以我可以在其他模型中使用它。

2 个答案:

答案 0 :(得分:3)

Behavior包含您可以加入的事件 - 其中一个是beforeSave()回调。

制作行为并将其附加到需要该行为的模型。

有关详细信息,请参阅http://book.cakephp.org/2.0/en/models/behaviors.html

答案 1 :(得分:2)

好问题,

您可以使用AppModel.php

<?php
  class AppModel extends Model{

    function f1($arg){
           // some code     
    }
  }
?>

从model1和model2可以调用它,如下所示:

<?php
  class Model1 extends AppModel{

    function beforeSave(){
         $this->f1($arg1);
           // some code     
    }
  }
?>

我认为这将解决上述问题!