在web.php中,我在中间件中切换了Postgres模式,因为生成了HTTP请求的子域类型。这条路:
Route::group(
[
'domain' => '{tenant}.' . config('app.url'),
'middleware' => 'select-schema'
],
function () {
$this->get('/', 'HomeController@index')->middleware('auth');
}
);在选择模式中间件中,我会这样做。这是正确的。(别担心)
DB::select('SET search_path TO ' . {tenant});我的主要问题是:对于public模式和任何individual tenant,我都有不同的individual tenant。在individual tenant中,我有users表。一旦登录,就会弹出这个错误。
SQLSTATE42P01:未定义表:7错误:关系“用户”不存在
主要问题是
$this->get('/', 'HomeController@index')->middleware('auth');该模型运行良好,但中间件auth在select-schema之前首先执行。
我怎么点菜? select-schema然后auth
发布于 2017-06-13 05:35:56
我找到了解决方案,为此,在App\Kernel中有一种叫做App\Kernel的东西。
加上这个可以帮我解决这个问题。
/**
* Responsible for prioritizing the middleware
*
* @var array
*/
protected $middlewarePriority = [
\App\Http\Middleware\SwitchSchema::class,
];我从这个链接中找到了解决方案。
发布于 2017-06-12 04:08:40
您是否尝试过将您的路线与另一组包装在租户组中?看看这是否有效:
Route::group([
'domain' => '{tenant}.' . config('app.url'),
'middleware' => 'select-schema'
],function () {
Route::group(['middleware' => 'auth'], function () {
Route::get('/', 'HomeController@index');
});
}
);https://stackoverflow.com/questions/44487764
复制相似问题