Вызвать метод обратного вызова другой модели

Я использую CakePHP 2.9. Я хочу позвонить ребенку afterSave в родительской afterSave,

Вот мои модели с их методами обратного вызова:

Родительская модель

/*
 * @property Child @Child
 */

class Parent extends AppModel {
    public $hasMany = [
        'Child' => array(
            'className' => 'Child',
            'foreignKey' => 'parent_id',
            'dependent' => false,
            )
    ];

    public function afterSave($created, $options = array()){
        if( ! $created && $this->data['Parent']['status'] == 0 ) {
            // Update child's status
        }
    }
}

Модель ребенка

/*
 * @property Grandchild @Grandchild
 */
class Child extends AppModel {
    // belongs to Parent

    public $hasMany = [
        'Grandchild' => array(
            'className' => 'Grandchild',
            'foreignKey' => 'child_id',
            'dependent' => false,
            )
    ];

    public function afterSave($created, $options = array()){
        if( ! $created && $this->data['Child']['status'] == 0 ) {
            // Update grandchild's status
        }
    }
}

Как я могу позвонить ребенку afterSave в родительской afterSave?

1 ответ

Вы не можете сделать что-то вроде этого:

class Parent extends AppModel {
    // ..

    public function afterSave($created, $options = array()){
        if(!$created && $this->data['Parent']['status'] == 0) {
            $child = new Child();
            $child->afterSave($created, $options);
        }
    }
}
Другие вопросы по тегам