0

我对 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 重复条目...

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

4

2 回答 2

1

在这里使用 Validator 类解决

于 2015-04-11T15:34:08.750 回答
0

我认为我的回答将帮助其他人在类验证表单请求中输入图像描述后 ,如果你使用它,你可以在 Laravel 表单请求中使用函数作为回调函数,你也可以验证 json 值的唯一性

请参阅链接图像中的示例,它很容易检查数据库中的验证 json 唯一性

于 2021-12-31T14:19:26.827 回答