fixed prefix scope

This commit is contained in:
denisdulici 2020-02-09 12:44:36 +03:00
parent 7804fa0859
commit 41cdeae572
10 changed files with 31 additions and 28 deletions

View File

@ -9,7 +9,7 @@ class Company extends Controller
{ {
public function edit() public function edit()
{ {
$setting = Setting::all('company')->map(function ($s) { $setting = Setting::prefix('company')->get()->transform(function ($s) {
$s->key = str_replace('company.', '', $s->key); $s->key = str_replace('company.', '', $s->key);
return $s; return $s;

View File

@ -13,7 +13,7 @@ class Defaults extends Controller
{ {
public function edit() public function edit()
{ {
$setting = Setting::all('default')->map(function ($s) { $setting = Setting::prefix('default')->get()->transform(function ($s) {
$s->key = str_replace('default.', '', $s->key); $s->key = str_replace('default.', '', $s->key);
return $s; return $s;

View File

@ -31,7 +31,7 @@ class Email extends Controller
public function edit() public function edit()
{ {
$setting = Setting::all('email')->map(function ($s) { $setting = Setting::prefix('email')->get()->transform(function ($s) {
$s->key = str_replace('email.', '', $s->key); $s->key = str_replace('email.', '', $s->key);
return $s; return $s;

View File

@ -9,7 +9,7 @@ class Invoice extends Controller
{ {
public function edit() public function edit()
{ {
$setting = Setting::all('invoice')->map(function ($s) { $setting = Setting::prefix('invoice')->get()->transform(function ($s) {
$s->key = str_replace('invoice.', '', $s->key); $s->key = str_replace('invoice.', '', $s->key);
return $s; return $s;

View File

@ -12,7 +12,7 @@ class Localisation extends Controller
public function edit() public function edit()
{ {
$setting = Setting::all('localisation')->map(function ($s) { $setting = Setting::prefix('localisation')->get()->transform(function ($s) {
$s->key = str_replace('localisation.', '', $s->key); $s->key = str_replace('localisation.', '', $s->key);
return $s; return $s;

View File

@ -29,7 +29,7 @@ class Modules extends Controller
*/ */
public function edit($alias) public function edit($alias)
{ {
$setting = Setting::all($alias)->map(function ($s) use ($alias) { $setting = Setting::prefix($alias)->get()->transform(function ($s) use ($alias) {
$s->key = str_replace($alias . '.', '', $s->key); $s->key = str_replace($alias . '.', '', $s->key);
return $s; return $s;
})->pluck('value', 'key'); })->pluck('value', 'key');

View File

@ -9,7 +9,7 @@ class Schedule extends Controller
{ {
public function edit() public function edit()
{ {
$setting = Setting::all('schedule')->map(function ($s) { $setting = Setting::prefix('schedule')->get()->transform(function ($s) {
$s->key = str_replace('schedule.', '', $s->key); $s->key = str_replace('schedule.', '', $s->key);
return $s; return $s;

View File

@ -939,8 +939,10 @@ class Version200 extends Listener
'app/Jobs/Income', 'app/Jobs/Income',
'app/Listeners/Incomes', 'app/Listeners/Incomes',
'app/Listeners/Updates', 'app/Listeners/Updates',
'app/Models/Company',
'app/Models/Expense', 'app/Models/Expense',
'app/Models/Income', 'app/Models/Income',
'app/Models/Item',
'app/Notifications/Expense', 'app/Notifications/Expense',
'app/Notifications/Income', 'app/Notifications/Income',
'app/Overrides', 'app/Overrides',

View File

@ -7,7 +7,6 @@ use Illuminate\Database\Eloquent\Model as Eloquent;
class Setting extends Eloquent class Setting extends Eloquent
{ {
protected $table = 'settings'; protected $table = 'settings';
public $timestamps = false; public $timestamps = false;
@ -19,11 +18,6 @@ class Setting extends Eloquent
*/ */
protected $fillable = ['company_id', 'key', 'value']; protected $fillable = ['company_id', 'key', 'value'];
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot() protected static function boot()
{ {
parent::boot(); parent::boot();
@ -31,21 +25,24 @@ class Setting extends Eloquent
static::addGlobalScope(new Company); 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() public function company()
{ {
return $this->belongsTo('App\Models\Common\Company'); return $this->belongsTo('App\Models\Common\Company');
} }
/**
* Scope to only include by prefix.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param $company_id
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public static function scopePrefix($query, $prefix = 'company')
{
return $query->where('key', 'like', $prefix . '.%');
}
/** /**
* Scope to only include company data. * Scope to only include company data.
* *

View File

@ -2,10 +2,9 @@
namespace App\Scopes; namespace App\Scopes;
use App;
use Illuminate\Database\Eloquent\Scope;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;
class Company implements Scope class Company implements Scope
{ {
@ -21,7 +20,12 @@ class Company implements Scope
$table = $model->getTable(); $table = $model->getTable();
// Skip for specific tables // Skip for specific tables
$skip_tables = ['companies', 'jobs', 'migrations', 'notifications', 'permissions', 'role_user', 'roles', 'sessions', 'users']; $skip_tables = [
'companies', 'jobs', 'firewall_ips', 'firewall_logs', 'media', 'mediables', 'migrations', 'notifications',
'permissions', 'roles', 'role_companies', 'role_permissions', 'sessions', 'users', 'user_companies',
'user_dashboards', 'user_permissions', 'user_roles',
];
if (in_array($table, $skip_tables)) { if (in_array($table, $skip_tables)) {
return; return;
} }