Laravel在密钥更改时没有更新

时间:2014-05-01 17:49:22

标签: php database laravel relationship has-one

我有一个拥有阿凡达和军械库的用户。用户只能拥有一个阿凡达(目前),军械库可以拥有任意数量的护甲。一切都很好。然而,阿凡达需要有头部,胸部,手臂等,所以我在头像表上创建了head_id,chest_id等。基本上这些代表了他们在每个位置穿着的当前作品。军械库是他们可以选择的作品。

所以在我的头像模型中我有:

public function head()
{
    return $this->hasOne('Armor', 'id', 'head_id')
}

哪个工作得很好并且还给我一件盔甲。当我发布数据并尝试更改那件盔甲时,问题就出现了。我所做的是:

$this->head_id = $newHeadID;

哪个实际上改变了head_id,但是如果我然后执行$ this-> head(),它仍会返回旧的 head 。我已经尝试过 $ this-> save() $ this-> push(),但它仍然没有更新它立刻。似乎工作的唯一方法是完全"重新查询"像这样:

$head = Armor::where('id', $this->head_id)->first();

我很确定我错过了不做更新,刷新等的事情。有什么想法吗?

0 个答案:

没有答案