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.

47 lines
1.0 KiB

3 days ago
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class DictItem extends Model
{
use HasFactory;
protected $fillable = [
'dict_type',
'dict_name',
'remark',
'dict_sort',
'item_label',
'item_value',
'item_remark',
'sort',
'is_active',
];
protected $casts = [
'is_active' => 'boolean',
];
3 days ago
/**
* @return array<int, array{value: string, label: string}>
*/
public static function activeOptions(string $dictType): array
{
return static::query()
->where('dict_type', $dictType)
->where('is_active', true)
->orderBy('sort')
->orderBy('id')
->get(['item_value', 'item_label'])
->map(fn ($r) => [
'value' => (string) $r->item_value,
'label' => (string) $r->item_label,
])
->values()
->all();
}
3 days ago
}