Вручную определить соединение с БД в laravelPhp

Кемеровские программисты php общаются здесь
Anonymous
Вручную определить соединение с БД в laravel

Сообщение Anonymous »

Я следовал этому руководству и все настроил. В руководстве объясняется, как получить субдомен и использовать его для подключения к нужной базе данных. У каждого арендатора будет своя собственная база данных, а также будет главная база данных _admin. Эта база данных _admin будет иметь таблицу арендаторов со столбцом субдомена.
Существует фильтр, который запускается каждый раз и проверяет субдомен по таблице арендаторов. Проблема возникает из-за того, что файл конфигурации базы данных настроен не на главную базу данных _admin, которая включает в себя таблицу арендаторов, а на mysql_tenant, где арендатор устанавливается на лету.

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

Route::filter('verifyTenant', function($route, $request)
{
$host = $request->getHost();
$parts = explode('.', $host);
$subdomain = $parts[0];

# Ping DB for tenant match. Note that my Tenant model directs laravel to ping the tenant table in the master db to verify tenant
$tenant = Tenant::where('subdomain', '=', $subdomain)->first();

# If tenant database exists but tenant not in master db, redirect to homepage
if ($tenant == null) return Redirect::to('http://www.'.Config::get('app.domain'));
});


Мне нужно изменить строку:

$tenant = Tenant::where('subdomain', '=', $subdomain)->first();


Я пытался сделать следующее, но получил ошибку:

$tenant = DB::connection('mysql')->Tenant::where('subdomain', '=', $subdomain)->first();


Я получаю следующую ошибку:

Symfony \ Component \ Debug \ Exception \ FatalErrorException
syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)


Подробнее здесь: https://stackoverflow.com/questions/231 ... in-laravel

Вернуться в «Php»