Как получить одну строку (зашифрованное значение) из базы данных с помощью Laravel?

Я работаю над проектом и хочу использовать шифрование/дешифрование для значений базы данных. Я зашифровал поле «электронная почта», и оно работает нормально, но когда я хочу выполнить этот запрос, я получаю сообщение об ошибке.

Запрос: ; -> в этом запросе я хочу получить строку с адресом электронной почты example@gmail.com

Ошибка: Типы данных text и nvarchar несовместимы в операторе равенства. (SQL: выберите * из [пользователей], где [электронная почта] = 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'
    ];
}

Спасибо за ваши ответы!

0 ответов

Другие вопросы по тегам