我读过关于雄辩的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()
希望这能解决问题