Вызвать метод обратного вызова другой модели
Я использую 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);
}
}
}