如何在yii中强制刷新模型的值

liy*_*ysd 9 model yii

假设我有与B有关的模型A.

我写的时候:

$a = A::model()->findByPK(1);
$a->B->doSomething();
Run Code Online (Sandbox Code Playgroud)

现在B可以改变(例如由其他用户改变).我写的时候:

$a->B->doSomething(); 
Run Code Online (Sandbox Code Playgroud)

它使用B的旧值.在doSomething()之前,我应该强制刷新B的值.

Sni*_*per 17

Yii提供了一个refresh()方法,我认为这就是你要找的东西?

http://www.yiiframework.com/doc/api/CActiveRecord#refresh-detail


Kar*_*les 10

您可以通过以下方式获得刷新的"B"值:

$a->getRelated('B',true)->doSomething(); 
Run Code Online (Sandbox Code Playgroud)

第二个参数"true"要求yii从数据库重新加载关系.


Bru*_*dge 6

在Yii2中它只是一个简单的

unset($model->relation);
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下 unset($a->b)