【发布时间】:2015-06-16 23:06:09
【问题描述】:
我对 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);
}
我有一个对应于我的用户表的用户模型类。 email 和 phone 列在数据库表中设置为唯一的。
class User extends Model {
protected $fillable = [
'name',
'email',
'phone'
];
}
同一个Controller中的保存功能
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 Duplicate entry...
有没有办法在尝试保存到数据库之前验证数据的唯一性?
【问题讨论】:
标签: php json laravel-5 laravel-validation