Laravel Validator Issue - PullRequest
       7

Laravel Validator Issue

0 голосов
/ 21 мая 2018

При использовании драйвера sqlsrv у меня возникают проблемы при использовании Laravel Validator в базе данных с определенной схемой.

У меня нет проблем с доступом к базе данных в любой модели с использованием строки protected $table = 'dba.users'

, но когда я использую его на валидаторе

return Validator::make($data, [
            'name' => 'required|string|max:255|unique:dba.users',
]);

, это выдает ошибку:

Database [dba] not configured. 

я пытался использовать

return Validator::make($data, [
                'name' => 'required|string|max:255|unique:sqlrv.dba.users',
]);

, но это выдает

Invalid object name 'app.users'. (SQL: select count(*) as aggregate from
[app].[users] where [name] = test

с чего начать?

1 Ответ

0 голосов
/ 21 мая 2018

Если это единственное соединение с БД, которое вам нужно, вам не нужно указывать БД, чтобы вы могли сделать что-то вроде:

return Validator::make($data, [
    'name' => 'required|string|max:255|unique:users',
]);

Однако, если вы используете несколько баз данных, вам необходимо убедиться, что выуказали имена этих баз данных в вашем файле config/database.php.Взгляните на этот файл и посмотрите здесь https://laravel.com/docs/5.6/database#using-multiple-database-connections. Документация не так ясна, поэтому я обрисую ее подробнее ниже.

В вашем файле database.php вы найдете connectionsмассив.Добавьте в ваше dba соединение вот так:

'connections' => [
    'dba' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST_2', '127.0.0.1'),
        'port' => env('DB_PORT_2', '3306'),
        'database' => env('DB_DATABASE_2', 'forge'),
        'username' => env('DB_USERNAME_2', 'forge'),
        'password' => env('DB_PASSWORD_2', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],
]

В вашем файле .env установите новые значения, показанные выше.

Ваш database.php файл сообщает laravel, какие соединения с базой данных у вас естьи где их искать.После того, как вы это сделаете, ваш валидатор будет знать, где искать при указании базы данных.

...