laravel auth не работает с другой схемой из базы данных postgre
При развертывании проекта (в составе которого есть приложение laravel) создается БД PostgreSQL и схема site, а так же (среди прочих таблиц) таблица users в схеме site. Таблицы создаются скриптом через psql. Так же в site.users скриптом добавляется запись с логином admin и Bcrypt паролем. Bcrypt пароль сгенерирован с помощью Hash::make("password"); laravel'овским (на любой странице сделал echo и скопировал полученное для скрипта), то есть, условно, получается в скрипте следующая строка:
INSERT INTO site.users (login, password) VALUES ('admin', '$2a$12$q9/9Nb2QABtNCrEcRvVFvuErYMxP5.Y3zcMGIH.QefbOA4WCyeAfO');
В .env файл laravel'а указаны все параметры для БД, всё работает.
Я выполнил php artisan ui:auth, но миграции я не использую, мне нужен только интерфейс login. Все лишние файлы вообще удалены (все миграции, контроллеры по регистрации, восстановлению и т.д.)
В модели User переопределил:
protected $table = "site.users";
protected $fillable = [
...
'login',
...
];
В LoginController переопределил:
public function username()
{
return 'login';
}
И, соответственно, подправил login.blade.php файл:
<div class="row mb-3">
<label for="login" class="col-md-4 col-form-label text-md-end">{{ __('Логин') }}</label>
<div class="col-md-6">
<input id="login" type="login" class="form-control @error('login') is-invalid @enderror" name="login" value="{{ old('login') }}" required autocomplete="login" autofocus>
@error('login')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
На странице логина ввожу созданные скриптом логин и пароль, но мне всегда выдает
These credentials do not match our records.
В чем может быть проблема?
Updated
Вывод dd(DB::getQueryLog()); из метода login трейта AuthenticatesUsers
То есть даже, якобы, записи нет с таким логином, хотя она есть:
Я проверял стандартный ui:auth с миграцией, после регистрации логин работает...
Ответы (1 шт):
Будьте внимательны, дамы и господа...
В общем, я еще добавил дополнительный коннект в config/database.php, изменил search_path (она же - схема):
'pgsql_site' => [
'driver' => 'pgsql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'prefix_indexes' => true,
'search_path' => 'site',
'sslmode' => 'prefer',
],
Ну и в модель User указал:
protected $connection = 'pgsql_site';
А проблема была в этой строчке:
<input id="login" type="login" class="form-control @error('login') is-invalid @enderror" name="login" value="{{ old('login') }}" required autocomplete="login" autofocus>
type="login"........
Прошу прощения за глупость. Вопрос закрыт.

