雄辩的push()和save()区别

我读过关于雄辩的laravel 4文档,对push()部分很感兴趣。
上面说,

有时,您可能不仅希望保存模型,还希望保存其所有关系。为此,您可以使用推送方法:

保存模型和关系

$user->推()

请参阅此处的链接

抱歉,我对save()和push()之间的区别有点模糊。
我希望有人能帮我解决这个问题。多谢各位

这就是幕后的魔力

/**
*保存模型及其所有关系。
*
*@returnbool
*/
公共功能推送()
{
如果(!$this->save())返回false;
//要将所有关系同步到数据库,我们只需旋转
//通过此“推送”方法创建关系并保存每个模型,该方法允许
//我们需要递归到模型实例的所有这些嵌套关系中。
foreach($this->关系作为$models)
{
foreach(集合::make($models)作为$model)
{
如果(!$model->push())返回false;
}
}
返回true;
}

它只显示了push()将更新与所讨论的模型相关的所有模型,因此,如果您更改了任何关系,请调用push()
它将更新该模型及其所有关系
就像这样

$user=user::find(32);
$user->name=“TestUser”;
$user->state=“德克萨斯州”;
$user->位置->address=“123测试地址”//此行是预定义的关系

如果你在这里

$user->save();

那么地址将不会保存到地址模型中。。。。
但是如果你

$user->推();

然后它将保存所有数据,并将地址保存到地址表/模型中,因为您在用户模型中定义了该关系

push()

希望这能解决问题

发表评论