You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
1.7 KiB

<?php
namespace App\Models;
use Encore\Admin\Traits\AdminBuilder;
use Encore\Admin\Traits\ModelTree;
use Illuminate\Database\Eloquent\Model;
class Classes extends Model
{
use ModelTree, AdminBuilder;
const STATE_INACTIVE = 0;
const STATE_ACTIVE = 1;
const STATE_INACTIVE_STRING = '禁用';
const STATE_ACTIVE_STRING = '正常';
//
protected $table = "classes";
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->setParentColumn('class_pid');
$this->setOrderColumn('class_level');
$this->setTitleColumn('class_name');
}
public function goods()
{
return $this->hasMany(Good::class);
}
public static function getStateDisplayMap()
{
return [
self::STATE_INACTIVE => self::STATE_INACTIVE_STRING,
self::STATE_ACTIVE => self::STATE_ACTIVE_STRING
];
}
public static function getStateDisplayConfig()
{
return [
'on' => [
'text' => self::STATE_ACTIVE_STRING,
],
'off' => [
'text' =>self::STATE_INACTIVE_STRING,
]
];
}
public static function getAllClasses($noRoot = false)
{
$classes = Classes::all(['id', 'class_name']);
$result = [];
if (!$noRoot) {
$result = [
0 => 'root'
];
} else {
$result = [
0 => 'null'
];
}
foreach ($classes as $eachClass) {
$result[$eachClass->id] = $eachClass->class_name;
}
return $result;
}
}