0

我正在做一个项目,我想对数据库值使用加密/解密。我加密了“电子邮件”字段,它工作正常,但是当我想运行此查询时出现错误。

查询: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'
    ];
}

感谢您的回答!

4

0 回答 0