在使用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从哪里开始?
发布于 2018-05-21 23:47:51
如果这是您拥有的唯一数据库连接,则不需要指定数据库,因此您可以执行以下操作:
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您有哪些数据库连接以及在哪里查找它们。完成此操作后,当您指定数据库时,您的验证器将知道在何处查找。
https://stackoverflow.com/questions/50451623
复制相似问题