123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- namespace App\Repositories\Models\Base;
- use App\Repositories\Models\Model;
- use Carbon\Carbon;
- use Illuminate\Support\Facades\Cache;
- use Prettus\Repository\Contracts\Transformable;
- use Prettus\Repository\Traits\TransformableTrait;
- /**
- * Class Department.
- *
- * @package namespace App\Repositories\Models;
- */
- class Department extends Model implements Transformable
- {
- use TransformableTrait;
- protected $table = 'base_departments';
- /**
- * The attributes that are mass assignable.
- *
- * @var array
- */
- protected $fillable = ['name', 'parent_id', 'sort', 'status'];
- protected static function booted()
- {
- self::language();
- }
- public function parent()
- {
- return $this->belongsTo(Department::class, 'parent_id', 'id');
- }
- public function getParentNameAttribute()
- {
- return self::query()->where('id', $this->attributes['parent_id'])->value('name');
- }
- /**
- * 根据name获取班级id
- * @param $name
- * @return mixed
- */
- public static function byNameGetId($name, $is_create = false)
- {
- return Cache::remember('model:Department:byNameGetId:' . $name, Carbon::now()->addDay(), function () use ($name, $is_create) {
- $id = self::query()->where('name', $name)->value('id') ?? 0;
- if ($id) return $id;
- if (!$is_create) return $id;
- $model = self::query()->create(['name' => $name]);
- return $model['id'];
- });
- }
- }
|