<?php namespace App\Models\Setting; use App\Scopes\Company; use Illuminate\Database\Eloquent\Model; class Setting extends Model { protected $table = 'settings'; public $timestamps = false; /** * Attributes that should be mass-assignable. * * @var array */ protected $fillable = ['company_id', 'key', 'value']; /** * The "booting" method of the model. * * @return void */ protected static function boot() { parent::boot(); static::addGlobalScope(new Company); } public static function all($code = 'general') { return static::where('key', 'like', $code . '.%')->get(); } /** * Global company relation. * * @return \Illuminate\Database\Eloquent\Relations\BelongsTo */ public function company() { return $this->belongsTo('App\Models\Common\Company'); } /** * Scope to only include company data. * * @param \Illuminate\Database\Eloquent\Builder $query * @param $company_id * * @return \Illuminate\Database\Eloquent\Builder */ public function scopeCompanyId($query, $company_id) { return $query->where($this->table . '.company_id', '=', $company_id); } }