我对Laravel很新。
我正在尝试从远程位置获取一些用户数据作为JSON。这是我的Controller中用于获取JSON数据的代码。
public function fetch()
{
$url = 'http://example.com'; //fetching data as JSON
$json = json_decode(file_get_contents($url), true);
$this->save($json);
}
我有一个User Model类,它对应于我的users表。电子邮件和电话列在数据库表中设置为唯一。
class User extends Model {
protected $fillable = [
'name',
'email',
'phone'
];
}
同一控制器中的保存功能
private function save($json)
{
foreach ($json as $key => $value)
{
$user = User::create([
'name' => $value['name'],
'email' => $value['email'],
'phone' => $value['phone']
]);
}
}
只要电子邮件和电话是唯一的,保存就可以正常工作。如果没有,它会引发一个令人讨厌的QueryException
SQLSTATE [23000]:完整性约束违规:1062重复输入...
在尝试保存到数据库之前,有没有办法验证数据的唯一性?