Eloquent и тип vabinary

у меня такой вопрос. Я пытаюсь сделать кастомную регистрацию в Laravel, но мое поле password имеет тип varbinary(16), из за этого не получается создать пользователя.

Вот мой код

{return UserAuth::create([

        'account' => $data['account'],
        'password' => bcrypt($data['password']),
    ]);
}

Мне нужно, чтобы поле password создавалось в varbinary, как я могу это сделать? Изменить тип поля в бд я не могу, нужен именно varbinary.

Использую MsSql server 2008. Спасибо.

Если меняю тип на varchar и сохраняю туда хеш, то все работает прекрасно, но это мне не подходит.


Ответы (1 шт):

Автор решения: Vladimir Gonchar

Попробуйте преобразовать пароль в нужный тип через DB::raw():

UserAuth::create([
    'account' => $data['account'],
    'password' => DB:raw('CONVERT(VARBINARY(MAX), "'. bcrypt($data['password']) .'", 1)'),
]);
→ Ссылка