__('Status 1'), '0' => __('Status 0')]; } public function getStatusTextAttr($value, $data) { $value = $value ?: ($data['status'] ?? ''); $list = $this->getStatusList(); return $list[$value] ?? ''; } public function getAll(){ return $this->where('status',1) ->field('id,pid,level,title,key_word,sort,status') ->select(); } public function getList(){ $items = $this ->where('status',1) ->field(['id','title','key_word','pid']) ->order('pid','asc') ->order('sort','desc') ->select(); $this->items = $items; $filtered = array_filter($items, function($item) { return $item['pid'] == 0; }); $pid_map = array_column($filtered,null,'id'); $res_items = []; foreach ($items as $item){ if ($item['pid'] != 0 && isset($pid_map[$item['pid']])){ $res_items [] = [ ...$item,'ptitle' => $pid_map[$item['pid']]['title'] ]; } } return $res_items; } }