2013-10-08 43 views
0

我的Laravel 4项目中有一个cron任务,它从API获取数据并使用Eloquent将其存储到数据库。我需要它为存储在我的用户表中的每个用户执行此操作。我想我可以迭代每个用户,获取数据和$this->save()它在我的模型中。只有最后一条记录被添加。Laravel 4 Eloquent数据库保存在foreach循环

我做了一个简单的测试:

$this->user_id = 23; 
$this->save(); 
$this->user_id = 43; 
$this->save(); 

,仍然被添加只有最后一个条目。很明显,我没有正确使用雄辩或其他东西。我不应该使用雄辩吗?

回答

2

您只是更新模型($ this)循环的每次运行,因此只显示最后一个值。

你应该每次而是创建一个记录:

Model::create([ 
    "user_id" => 23 
]); 

其中型号为你的口才模型。

+0

有趣;技术上文档确实指定在保存之前创建新模型。我想'$ this-> key'会被每次迭代覆盖,所以我不必创建一个新的模型实例。谢谢! –