[英]Laravel 5.4: api password reset updateOrCreate
Laravel 5.4,PHP 5.6尝试updateOrCreate
密码重置令牌她是我的尝试。
$passwordReset = ( new PasswordReset )->updateOrCreate(
['email' => $user->email],
[
'email' => $user->email,
'token' => str_random(60)
]
);
如果用户第一次重设密码,创建工作正常,但是在更新时,我得到了这个QueryException
SQLSTATE [42S22]:找不到列:1054“ where子句”中的未知列“ id”(SQL:更新
password_resets
设置token
= 8ALMd5schQR9KNQ5kIt89bwr5lu5mb5G5D1YLpkittNiz5N5Z5ZxCcyhYaBp0X97,其中id
为null)
您的代码的问题在于laravel将主键预定义为id。
您有3个解决方案:
1)您可以添加一个id列,自动递增并使其成为您的主键
2)使用简单:
protected $primaryKey = 'email';
在模型中重新定义您的主键,
3)最后,您自己放置一个where子句:
->where('email',$user->email)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.