我正在做一个项目,我想对数据库值使用加密/解密。我加密了“电子邮件”字段,它工作正常,但是当我想运行此查询时出现错误。
查询:Users::where('email', 'example@gmail.com')->get()
; -> 在此查询中,我想获取电子邮件为 example@gmail.com 的行
错误:数据类型 text 和 nvarchar 在等于运算符中不兼容。(SQL: select * from [users] where [email] = example@gmail.com)"
我试图 CAST 它或 CONVERT 它,但这也不起作用。有人可以帮我如何运行此查询吗?
这是我的模型:
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
class Users extends Model
{
use HasFactory, Notifiable;
protected $table = 'users';
public $timestamps = false;
protected $fillable = [
'username',
'pwd',
'email'
];
protected $casts = [
'email' => 'encrypted'
];
}
感谢您的回答!