1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- namespace App\Repositories\Models\School;
- use App\Repositories\Enums\ModelStatusEnum;
- use App\Repositories\Models\Model;
- use Carbon\Carbon;
- use Illuminate\Support\Facades\Cache;
- use Prettus\Repository\Contracts\Transformable;
- use Prettus\Repository\Traits\TransformableTrait;
- /**
- * Class Grade.
- *
- * @package namespace App\Repositories\Models\School;
- */
- class Grade extends Model implements Transformable
- {
- use TransformableTrait;
- protected $table = 'school_grades';
- /**
- * The attributes that are mass assignable.
- *
- * @var array
- */
- protected $guarded = [];
- /**
- * 根据name获取班级id
- * @param $name
- * @return mixed
- */
- public static function byNameGetId($name, $is_create = false)
- {
- return Cache::remember('model:Grade: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'];
- });
- }
- public function getStudentNumsAttribute()
- {
- return Student::query()->where('grade_id', $this->attributes['id'])->where('status', ModelStatusEnum::OK)->count();
- }
- }
|