假设我有与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从数据库重新加载关系.
在Yii2中它只是一个简单的
unset($model->relation);
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下 unset($a->b)