@TimurRamilovich
Увлекся php, пока ничего не понятно :)

Как извлечь данные из удаленной базы данных laravel?

Всем привет!
Читаю официальную документацию по laravel, не понимаю один момент.
У меня в проекте есть .env, там есть данные для подключения в базу данных mysql.
Хочу извлечь строки из другой базы, которая предположим установлена даже на другом сервере.
Судя по официальной документации, получить их можно так:
$users = DB::connection('foo')->select(...);
Но мне не понятно, как правильно добавить вторую базу данных в конфигурацию, потому что в database.php например по дефолту стоит 127.0.0.1 и так далее. Пытался добавить в массив connections еще одно mysql подключение. На запрос вида:
'select * from users where active = ?', [1]
Получаю это:
Base table or view not found: 1146 Table 'laravel.accounts' doesn't exist

Получается, что приложение пытается выполнить запрос в дефолтной базе.

Мне кажется, что файл .env database.php надо использовать как-то иначе, только вот как я не знаю/не понимаю. Спасибо!
  • Вопрос задан
  • 569 просмотров
Решения вопроса 1
@imhuman
'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', ''),
            'username' => env('DB_USERNAME', ''),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_general_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],

'foo' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST_FOO', '127.0.0.2'),
            'port' => env('DB_PORT_FOO', '3306'),
            'database' => env('DB_DATABASE_FOO', ''),
            'username' => env('DB_USERNAME_FOO', ''),
            'password' => env('DB_PASSWORD_FOO', ''),
            'unix_socket' => env('DB_SOCKET_FOO', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_general_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы