在CakePHP中保存实体后如何重新加载包含关系

在CakePHP中保存实体后如何重新加载包含关系,php,cakephp,model,cakephp-3.0,Php,Cakephp,Model,Cakephp 3.0,我有一个代码片段,如下所示 // PurchaseController edit function. // created with bin/cake bake controller Purchase if ($this->Purchases->save($purchase)) { echo $purchase->status->success_message; } 更加清晰 //before saving; echo $purchase->status

我有一个代码片段,如下所示

// PurchaseController edit function. 
// created with bin/cake bake controller Purchase
if ($this->Purchases->save($purchase)) {
    echo $purchase->status->success_message;
}
更加清晰

//before saving;
echo $purchase->status->success_message; //this gives purchase is drafted. 

//it should give after saving;
echo $purchase->status->success_message; //this should give purchase is sent.

//But it gives;
 echo $purchase->status->success_message; //this gives purchase is drafted.
但是,尽管我的采购实体的状态id正在更改,但我在采购实体上达到的“状态”没有更改。如何重新加载关系以获得正确的数据


更新:我刚刚通过使用延迟加载而不是急切加载加载状态来修复它。然而,我真的认为应该有一个解决方案,所以我现在把这个问题留待讨论

我还没有升级到3.0,但我记得在保存关系时有两个可能的问题:1。尝试使用
saveAll
2。您确定您的
$purchase
数据数组按其应有的方式排列吗?purchase实体本身是完全正确的。purchase->status\u id给出了我想要的,即新保存的数据。但当我在上面使用关系时,它并没有带来正确的值。它只是带来了我用get检索到的旧关系,就像保存之前一样。我将在问题中添加更多信息,以便更清楚地了解您如何通过修补实体来设置
$purchase
中的
状态\u id
?@GregSchmidt