在cakePHP中有没有一种方法可以将数据从beforeSave()传递到afterSave()?

在cakePHP中有没有一种方法可以将数据从beforeSave()传递到afterSave()?,php,cakephp,orm,Php,Cakephp,Orm,我在CakePHP工作。在beforeSave()中,我将数据库中的列值与即将保存的更新列值进行比较。我想将此数据传递到afterSave()回调以确定回调的作用。是否有一种方法可以将数据从beforeSave()传递到afterSave()?我没有专门使用过cakePHP,但是如果它与其他一些MVC框架类似,那么beforeSave()和afterSave()回调将在类似的上下文中执行(它们属于同一个对象——模型或控制器) 如果是这种情况,一个简单的解决方案就是简单地使用自定义类属性来跟踪数据

我在CakePHP工作。在
beforeSave()
中,我将数据库中的列值与即将保存的更新列值进行比较。我想将此数据传递到
afterSave()
回调以确定回调的作用。是否有一种方法可以将数据从
beforeSave()
传递到
afterSave()

我没有专门使用过
cakePHP
,但是如果它与其他一些MVC框架类似,那么
beforeSave()
afterSave()
回调将在类似的上下文中执行(它们属于同一个对象——模型或控制器)

如果是这种情况,一个简单的解决方案就是简单地使用自定义类属性来跟踪数据

private $custom;

beforeSave(){
   // save what you want to access later
   $this->custom = 'comparison result';
}

afterSave(){
   // retrieve what we found in beforeSave()
   $custom = $this->custom;
}

我没有专门使用过
cakePHP
,但是如果它与其他一些MVC框架类似,那么
beforeSave()
afterSave()
回调将在类似的上下文中执行(它们属于同一个对象——模型或控制器)

如果是这种情况,一个简单的解决方案就是简单地使用自定义类属性来跟踪数据

private $custom;

beforeSave(){
   // save what you want to access later
   $this->custom = 'comparison result';
}

afterSave(){
   // retrieve what we found in beforeSave()
   $custom = $this->custom;
}

您可以通过模型的
save(array$data=null,array$params=array())
函数将参数传递给回调函数
beforeSave(array$options=array())
afterSave(boolean$created,array$options=array())

这里有一个例子

//In your controller
$this->Post->save($data, array('arg1' => $value));

//In the Post Model
beforeSave($options = array()){
   // $options contains the arg1 param 
}

afterSave($created, $options = array()){
   // $options contains the arg1 param
}

试试看:)

您可以从模型的
保存(array$data=null,array$params=array())
函数中,在保存前(array$options=array())和保存后(boolean$created,array$options=array())向回调传递参数

这里有一个例子

//In your controller
$this->Post->save($data, array('arg1' => $value));

//In the Post Model
beforeSave($options = array()){
   // $options contains the arg1 param 
}

afterSave($created, $options = array()){
   // $options contains the arg1 param
}

试试看:)

太棒了!非常感谢。令人惊叹的!非常感谢。