首页 文章

LARAVEL 5:在保存到数据库之前验证JSON数据的唯一性

提问于
浏览
0

我是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'
    ];  

}

保存功能在同一个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重复输入...

在尝试保存到数据库之前,有没有办法验证数据的唯一性?

1 回答

  • 1

    使用Validator类解析了here

相关问题