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

时间:2015-04-11 06:21:25

标签: php json laravel-5 laravel-validation

我对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重复输入...

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

1 个答案:

答案 0 :(得分:1)

使用Validator类

解析here