【发布时间】:2018-01-27 13:47:34
【问题描述】:
我有两个表,第一个是用户表,它具有这些属性 id、用户名、电子邮件、remember_token、createdat、updateat 另一个表称为 received_pay 具有 id、email、token 我的任务是检查电子邮件是否和用户输入的令牌必须与 received_pay 中的令牌匹配,否则不会创建新用户,感谢您的宝贵时间,
我正在尝试创建新用户,条件是如果另一个表中有数据,则创建新用户,否则我没有将我的代码放入 if else 语句中并引发错误。
我创建新用户的功能如下:
protected function create(array $data)
{
/*$exists = \DB::table('received_pay')->where('email', $data['email'])->first(); */
$exists=\DB::table('received_pay')->where('email', '=', $data['email'])->where('token', $data['token'])->exists();
if ($exists === null)
{
// user doesn't exist
return User::create([
'username' => $data['username'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'token' => $data['token'],
]);
}
else
{
return null;
}
}
【问题讨论】:
-
它会抛出什么样的错误?
-
this answer 的第一部分解决了原来的问题(“Argument 1 pass to...”错误),所以你应该accept the answer
-
Alexey Mezenin 解决了错误,我现在面临的问题是检查第一个表“received_pay”然后在第二个“用户”表中添加数据的逻辑,Laravel 通过使用实现验证有限制的唯一关键字,我想使用上面代码中显示的 If Else 语句。