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()
{
$setting = Setting::all('company')->map(function ($s) {
$setting = Setting::prefix('company')->get()->transform(function ($s) {
$s->key = str_replace('company.', '', $s->key);
return $s;

View File

@ -13,7 +13,7 @@ class Defaults extends Controller
{
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);
return $s;

View File

@ -31,7 +31,7 @@ class Email extends Controller
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);
return $s;

View File

@ -9,7 +9,7 @@ class Invoice extends Controller
{
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);
return $s;

View File

@ -12,7 +12,7 @@ class Localisation extends Controller
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);
return $s;

View File

@ -29,7 +29,7 @@ class Modules extends Controller
*/
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);
return $s;
})->pluck('value', 'key');

View File

@ -9,7 +9,7 @@ class Schedule extends Controller
{
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);
return $s;

View File

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

View File

@ -7,7 +7,6 @@ use Illuminate\Database\Eloquent\Model as Eloquent;
class Setting extends Eloquent
{
protected $table = 'settings';
public $timestamps = false;
@ -19,11 +18,6 @@ class Setting extends Eloquent
*/
protected $fillable = ['company_id', 'key', 'value'];
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
@ -31,21 +25,24 @@ class Setting extends Eloquent
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 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.
*

View File

@ -2,10 +2,9 @@
namespace App\Scopes;
use App;
use Illuminate\Database\Eloquent\Scope;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;
class Company implements Scope
{
@ -21,7 +20,12 @@ class Company implements Scope
$table = $model->getTable();
// 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)) {
return;
}
@ -66,4 +70,4 @@ class Company implements Scope
return false;
}
}
}