public function create($table, \Closure $callback) { $tb = new Table($this->builder, $table); $tb->create(); $tb->engine = 'InnoDB'; $callback($tb); $tb->build($this->con, $this->grammar); }
/** * Aplicar. * * @param Builder $builder * @param Model $model */ public function apply(Builder $builder, Model $model) { // Verificar qual o inquilino informado $inquilino_id = \Auth::check() ? \Auth::user()->{Table::tenantField()} : null; if (is_null($inquilino_id) != true) { $builder->where(Table::keyAttr(), $inquilino_id); } }
/** * Aplicar. * * @param Builder $builder * @param Model $model */ public function apply(Builder $builder, Model $model) { if (isset($model->filterLogged) && $model->filterLogged == false) { return; } // Verificar qual o inquilino informado $inquilino_id = \Auth::check() ? \Auth::user()->{Table::tenantField()} : null; if (is_null($inquilino_id) != true) { $builder->where(Table::keyAttr(), $inquilino_id); } }
/** * Associacao para o tenant. * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function tenant() { // Verificar se eh mult inquilino if ($this->multTenant != true) { return; } // Veriifcar se foi definido o tenant Model $model = Table::tenantModel(); if (is_null($model)) { error('Não foi configurado a classe do Tenant. (configs.database.tenant.model'); } // Retornar o relacionamento return $this->belongsTo($model, null, null, Table::tenantAttr()); }
/** * Aplicar. * * @param Builder $builder * @param Model $model */ public function apply(Builder $builder, Model $model) { // Verificar se deve filtrar o inquilino if (isset($model->multTenant) && $model->multTenant == true) { // Verificar se esta logado if (is_null(\Auth::id())) { return; } // Verificar qual o inquilino informado $inquilino_id = \Auth::user()->{Table::tenantField()}; if (is_null($inquilino_id)) { $builder->whereNull(Table::tenantField()); } else { $builder->where(Table::tenantField(), $inquilino_id); } } }
/** * Carregar ondemand o objeto Tenant da classe mult-tenant. * @return mixed|null */ public function getTenantAttribute() { // Verificar se eh mult inquilino if ($this->multTenant != true) { return null; } // Verificar se jah foi carregado if (is_null($this->tenantObj) != true) { return $this->tenantObj; } // Veriifcar se foi definido o tenant Model $model = config('database.models.tenant', '\\NetForce\\Auth\\Models\\Inquilino'); if (is_null($model)) { error('Não foi configurado a classe do Tenant. (configs.database.models.tenant'); } // Carregar id do tenant $tenant_id = $this->{Table::tenantField()}; if (is_null($tenant_id)) { return null; } return $this->tenantObj = app()->make($model, [$tenant_id]); }