【问题标题】:Show only one record in Mult-Tenant auth System Laravel在多租户身份验证系统 Laravel 中仅显示一条记录
【发布时间】:2018-07-16 14:48:15
【问题描述】:

我正在构建一个多租户身份验证系统,每个用户都可以属于“x”家公司。 在用户表中,有一个名为“companies_id”的字段,其中包含他所属的公司ID(在“,”之间),例如:1,9,25,30。 我可以通过查询范围 e Query Builder 列出所有用户公司:

class Company extends Model
{

    protected static function boot()
    {
        parent::boot();

        static::addGlobalScope(new CompanyScope());

}

class CompanyScope implements Scope
{

    public function apply(Builder $builder, Model $model)
    {

$companies_id = auth()->user()->companies_id;
    $pieces = explode(",", $ companies _id);
    foreach ($pieces as $k){
        $builder->orwhere('companies_id', $k);
}
}

在 INDEX 页面中是可以的,但是,如果我只需要显示一个用户所属的公司,我不能。 我在公司控制器中有一个方法: 显示($id){ }。

【问题讨论】:

    标签: database laravel-5 eloquent


    【解决方案1】:

    您似乎正在开发基于单个共享数据库概念的多租户应用程序,从长远来看,这不是一个好主意,我只是给您我的意见,如果您可以将每个公司的数据库分开并制作即时数据库连接,当您的数据库增长时,它将为您提供更多控制权,

    本文列出了独立数据库相对于共享数据库的所有优势。 https://www.techalyst.com/links/read/139/laravel-database-per-user-on-the-fly-database-connections-multi-tenant-laravel-app-user-own-db

    【讨论】:

    • 亲爱的朋友。首先,感谢您的回复。但是这个项目我需要用1个数据库来开发,但是看了你的文章,很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-23
    • 2020-12-01
    • 1970-01-01
    • 2021-05-24
    • 2023-03-11
    • 2022-10-24
    • 2022-01-20
    相关资源
    最近更新 更多