Database 在多租户身份验证系统Laravel中仅显示一条记录
我正在构建一个多租户身份验证系统,每个用户都可以属于“x”公司。 在用户表中,有一个名为“companys_id”的字段,其中包含他所属的公司id(在“,”之间),例如:1,9,25,30。 我可以通过查询范围e query Builder列出所有用户公司: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
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个数据库,但我读了你的文章,非常好。