我对 Laravel 还很陌生。
我正在尝试从远程位置获取一些用户数据作为 JSON。这是我的控制器中用于获取 JSON 数据的代码。
public function fetch()
{
$url = 'http://example.com'; //fetching data as JSON
$json = json_decode(file_get_contents($url), true);
$this->save($json);
}
我有一个对应于我的用户表的用户模型类。电子邮件和电话列在数据库表中设置为唯一的。
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 重复条目...
有没有办法在尝试保存到数据库之前验证数据的唯一性?