【发布时间】: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