Как я могу установить соединение в Laravel без использования файла database.php?

Мне нужно подключиться к разным базам данных, но мне нужно сделать это прямо в запросе, не указывая информацию о подключении в файле laravel database.php, если это возможно?

Это мой код:

public function prueba()
{
    try {
        $data  =   Mesa::on([
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => '127.0.0.1',
            'port' => '3306',
            'database' => 'mydatabase_laravel',
            'username' => 'root',
            'password' => '',
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci'
        ])->get();
        return $data;
    } catch (Exception $e) {
        error_log($e);
        return Responses::errorHttpXWithoutErrors(500, 'Ocurrió un error al asignar las notas');
    }
}

Это ошибка, которая дает мне:

str_ends_with(): Аргумент №1 ($haystack) должен быть строкового типа, указан массив

Я попытался сделать это так, как показано в прикрепленном коде, но это все равно не работает.

Взгляните на: laravel.com/docs/master/…

tttony 23.04.2023 06:07

Не публикуйте код, данные или сообщения об ошибках в виде изображений. См. Как спросить

Tangentially Perpendicular 23.04.2023 07:05
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Метод Model::on принимает имя подключения в виде строки, а не массива параметров БД.

Вы можете просто добавить настройку конфигурации в файл конфигурации на лету, как указано здесь:

Здесь происходит то, что вы просто получаете доступ к массиву файлов конфигурации базы данных, а затем добавляете параметры к массиву и запрашиваете их сразу после этого. Таким образом, вы не открываете сам файл, а изменения только для одного вызова.

Если по какой-то причине вы даже этого не можете сделать, я бы подумал об использовании Vanilla PHP и подключении к БД через стандартный способ PHP PDO (хотя это уродливо, и вы теряете ORM Laravel и т. д.):

$dsn = 'mysql:host=localhost;dbname=mydatabase';
$username = 'myusername';
$password = 'mypassword';

$pdo = new PDO($dsn, $username, $password);

Это работало очень хорошо, это было именно то, что я искал, не было необходимости использовать стандартную форму PHP PDO

Yeimer Rafael Montes Mendoza 23.04.2023 14:51

Другие вопросы по теме