Переключите соединение перед любым запросом Laravel - PullRequest
0 голосов
/ 30 августа 2018

Я склонен переключать соединение с базой данных перед любым запросом, любое предложение?

Я использую группы маршрутов домена:

Route::group(['domain' => 'example.com'], function () {


    Route::get('/', function () {
        return view('welcome');
    });
    ... and other routes

});

Но я хочу включить соединение с базой данных после любой группы маршрутов по домену и использовать один контроллер для управления всем доменом, но с несколькими базами данных. Есть идеи, как это сделать? Я знаю, что могу переключить соединение в контроллере так:

$connection = config('database.connections.mysql');
$conn = DB::connection($connection);
$model = $conn->table('models');
$models = $model->get();

например. Но я хочу, чтобы приложение было передано в приложение.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

У вас должно быть одно промежуточное ПО, которое обернет все маршруты внутри этой группы. Внутри этого Middleware вы можете переключаться между базами данных в соответствии с вашими требованиями.

0 голосов
/ 30 августа 2018

Я думаю, что промежуточное ПО Laravel может прийти сюда. Смотри документацию здесь: https://laravel.com/docs/5.6/middleware

Краткое введение в промежуточное ПО:

Промежуточное ПО обеспечивает удобный механизм фильтрации HTTP-запросов. ввод вашего приложения. Например, Laravel включает промежуточное ПО который проверяет, аутентифицирован ли пользователь вашего приложения. Если пользователь не аутентифицирован, промежуточное ПО перенаправит пользователя на экран входа в систему. Однако, если пользователь аутентифицирован, промежуточное программное обеспечение позволит запросу продолжить работу в применение.

Конечно, дополнительное промежуточное программное обеспечение может быть написано для выполнения различных задач помимо аутентификации. Промежуточное программное обеспечение CORS может быть отвечает за добавление правильных заголовков ко всем ответам, оставляя ваше приложение. Промежуточное программное обеспечение может регистрировать все входящие запросы к вашему заявлению.

Вы можете поместить все маршруты, запрашивающие одну и ту же базу данных, в одно и то же промежуточное ПО и соответственно переключать базы данных. Раньше Middleware будет идеальным для этого сценария.

Промежуточное программное обеспечение до и после:

Работает ли промежуточное программное обеспечение до или после запроса, зависит от само промежуточное ПО. Например, следующее промежуточное программное обеспечение будет выполнять некоторая задача перед обработкой запроса приложением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...