0

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

  1. 我必须把f()放在哪里?
  2. 如何在模型的beforeSave()函数中调用它(语法问题)?

PS:我想做一些事情,比如在将文件保存到数据库之前更改上传文件的名称。我知道如何进行上传,但不知道将该方法放在哪里,以便我可以在其他模型中使用它。

4

2 回答 2

3

ABehavior具有您可以挂钩的事件 - 其中一个是beforeSave()回调。

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

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

于 2014-07-05T05:47:32.110 回答
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     
    }
  }
?>

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

于 2014-07-05T08:02:28.877 回答