Я сделал мультитенантное приложение Laravel, которое в основном работает.
Последняя проблема с конфигурацией, которая у меня возникла, касается проверки.
Если я сделаю следующее, как указано в документах :
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
Я получу следующую ошибку:
"SQLSTATE [42S02]: базовая таблица или представление не найдено: 1146 Таблица 'master.posts' не существует
, что верно, потому что «master» относится к основной базе данных, а не к арендатору.
Как настроить проверку базы данных клиентов?
Ниже мое Мультитенантное промежуточное ПО:
public function handle($request, Closure $next)
{
$tenant_db = Auth::user()->tenant_db;
Config::set('database.connections.tenant_mysql.database', $tenant_db);
return $next($request);
}