Laravel multi проблема аренды жилья - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть ситуация.У меня есть приложение, в котором есть как администратор, так и арендаторы.В администраторе у нас есть такие модули, как управление пользователями, управление арендаторами и т. Д. В арендаторах у меня есть управление пользователями и некоторые другие модули.
В AppServiceProvider Я установил подключение по умолчанию в качестве арендатора, как указано в по этой ссылке (Только после этого сработал логин арендатора).Когда я создаю арендатора через администратора, я переключаю соединение, как указано в по этой ссылке , на вновь созданного клиента и создаю пользователя, используя модель по умолчанию User.Эта модель пользователя является моделью по умолчанию, и я не использовал черту подключения арендатора в этом.Это создало нового пользователя в базе данных клиентов, как и ожидалось.Но когда я попытался переключить соединение в другом контроллере, коммутатор не работал, пока я не использовал другую модель CustomerUser с чертой арендатора.Когда я использовал модель пользователя по умолчанию, данные были получены из системы.Единственное различие, которое я нашел, было кодом чуть выше переключения, а именно:

$website = new Website;
$website->uuid = $customer->domain_name;
app(WebsiteRepository::class)->create($website);
$hostname = new Hostname;
$serverName = $request->server->get('SERVER_NAME');
$hostname->fqdn = $website->uuid.'.'.$serverName;
$hostname = app(HostnameRepository::class)->create($hostname);
app(HostnameRepository::class)->attach($hostname, $website);
return $website->id;

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

Но когда я попробовал в другомНа контроллере код переключения был таким же, но для получения веб-сайта я использовал этот код:

$customerWebsite = Customers::findOrFail($customerId)->website;
$uuid = $customerWebsite->uuid;
$website = app(WebsiteRepository::class)->findByUuid($uuid);

Общий код коммутатора:

$tenancy = app(Environment::class);
$tenancy->tenant($website);

Пожалуйста, предложите способ решения проблемы.

1 Ответ

0 голосов
/ 27 августа 2019

Для настройки приложения можно использовать следующий фрагмент:

app(Environment::class)->tenant($hostname->website);
config(['database.default' => 'tenant']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...