Sag*_*ing 1 php postgresql middleware multi-tenant laravel
在web.php中,随着发出HTTP请求的子域类型,我在中间件中切换了Postgres模式。这条路:
Route::group(
[
'domain' => '{tenant}.' . config('app.url'),
'middleware' => 'select-schema'
],
function () {
$this->get('/', 'HomeController@index')->middleware('auth');
}
);
Run Code Online (Sandbox Code Playgroud)
在选择模式中间件中,我这样做。这可以正常工作。(不用担心)
DB::select('SET search_path TO ' . {tenant});
Run Code Online (Sandbox Code Playgroud)
我的主要问题是:migrations对于public方案和任何其他方案,我都有所不同individual tenant。在individual tenant我有users桌子。一旦我登录,就会弹出此错误。
SQLSTATE [42P01]:未定义表:7错误:关系“用户”不存在
主要问题是
$this->get('/', 'HomeController@index')->middleware('auth');
Run Code Online (Sandbox Code Playgroud)
该模型运行良好,但中间件auth先执行 select-schema
我该如何订购? select-schema然后auth
我已经找到了解决办法,对于这一点,有一些所谓的$middlewarePriority在App\Kernel。
添加这个可以帮助我解决问题。
/**
* Responsible for prioritizing the middleware
*
* @var array
*/
protected $middlewarePriority = [
\App\Http\Middleware\SwitchSchema::class,
];
Run Code Online (Sandbox Code Playgroud)
我已经从此链接获得解决方案。
https://github.com/laravel/framework/issues/19565
| 归档时间: |
|
| 查看次数: |
2261 次 |
| 最近记录: |