Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在多租户身份验证系统Laravel中仅显示一条记录_Database_Laravel 5_Eloquent - Fatal编程技术网

Database 在多租户身份验证系统Laravel中仅显示一条记录

Database 在多租户身份验证系统Laravel中仅显示一条记录,database,laravel-5,eloquent,Database,Laravel 5,Eloquent,我正在构建一个多租户身份验证系统,每个用户都可以属于“x”公司。 在用户表中,有一个名为“companys_id”的字段,其中包含他所属的公司id(在“,”之间),例如:1,9,25,30。 我可以通过查询范围e query Builder列出所有用户公司: class Company extends Model { protected static function boot() { parent::boot(); static::addGl

我正在构建一个多租户身份验证系统,每个用户都可以属于“x”公司。 在用户表中,有一个名为“companys_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);
}
}
在索引页面中是可以的,但是,若我只需要显示一个用户所属的一个公司,我就不能。 我在公司控制者中有一种方法: 显示($id){
}.

看来你是在一个共享数据库概念上开发多租户应用程序,从长远来看这不是一个好主意,我只是给你我的意见,如果你能将每个公司的数据库分开,并在运行中建立数据库连接,将来当你的数据库增长时,它会给你更多的控制权

本文列出了单独数据库优于共享数据库的所有优点。

亲爱的朋友。首先,谢谢你的回复。但对于这个项目,我需要开发1个数据库,但我读了你的文章,非常好。