123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- namespace App\Models\System;
- use App\Exceptions\ApiException;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\DB;
- use Spatie\Permission\Guard;
- use Spatie\Permission\Traits\HasPermissions;
- use Symfony\Component\HttpFoundation\Response;
- class Menu extends Model
- {
- // use HasPermissions;
- protected $table = 'system_menus';
- protected $attributes = [];
- public static $snakeAttributes = false;
- protected $appends = ['permission'];
- protected $casts = [
- // 'visible' => 'bool',
- // 'keepAlive' => 'bool',
- // 'alwaysShow' => 'bool',
- // 'parent_id' => 'camel'
- ];
- public function getPermissionAttribute()
- {
- $tableNames = config('permission.table_names');
- $permission_ids = DB::table($tableNames['model_has_permissions'])->where('model_type', Menu::class)->where('model_id', $this->attributes['id'])->pluck('permission_id');
- $permission_names = DB::table($tableNames['permissions'])->whereIn('id', $permission_ids)->pluck('name');
- return implode('|', $permission_names->toArray());
- }
- public function setComponentNameAttribute($value)
- {
- $this->attributes['component_name'] = $value;
- }
- public function setVisibleAttribute($value)
- {
- $this->attributes['visible'] = $value ? 1 : 0;
- }
- public function setAlwaysShowAttribute($value)
- {
- $this->attributes['always_show'] = $value ? 1 : 0;
- }
- // public function getVisibleAttribute($value)
- // {
- // $this->attributes['visible'] = !$value;
- // }
- public function setKeepAliveAttribute($value)
- {
- $this->attributes['keep_alive'] = $value ? 1 : 0;
- }
- }
|