0

我正在写一个行为

<?php

class LogsBehavior extends ModelBehavior {


        public $Model;

        public function setup(Model $model, $config = array()) {
            $this->Model = $model;
        }

        public function afterSave(Model $Model, $created, array $options = array()) {

            pr($this->Model);
            exit;


        }

}

好的,所以当我检查 $model 中的设置方法时:

Comprovante Object
(...)

当我保存条目并到达 afterSave 方法时,$Model 属性为

Comprovante Object
    (...)

但是我的 $this->Model 是:

Cliente Object

似乎之前的对象不存在 Comprovante ......

有人可以帮助我吗?

Comprovante.php

public $actsAs = array('Logs');
4

1 回答 1

1

由于上述原因,您不能在此处使用共享属性。

始终提供作为第一个参数传递给模型的方法:

public function someMethod(Model $Model, ...) {
    $this->_someMethod($Model, ...);
}

protected function _someMethod(Model $Model, ...) {}

ETC

看看当前的核心和(流行!)插件/用户态行为是如何做到的,并接受他们的做事方式。

于 2013-10-30T17:42:54.713 回答