1
0
Fork 0
internet-everythings-agricu.../app/Services/Admin/ArticleCategoryService.php

46 lines
1.1 KiB
PHP

<?php
namespace App\Services\Admin;
use App\Models\ArticleCategory;
use Slowlyo\OwlAdmin\Services\AdminService;
use Illuminate\Http\Request;
/**
* @method ArticleCategory getModel()
* @method ArticleCategory|\Illuminate\Database\Query\Builder query()
*/
class ArticleCategoryService extends AdminService
{
protected string $modelName = ArticleCategory::class;
public function getTree()
{
$list = $this->query()->orderByDesc('sort')->get()->toArray();
return array2tree($list);
}
public function list()
{
return ['items' => $this->getTree()];
}
public function store($data): bool
{
$pid = data_get($data, 'parent_id');
if ($pid && $parent = ArticleCategory::find($pid)) {
$data['level'] = $parent->level + 1;
$data['path'] = $parent->path . $parent->id . '-';
} else {
$data['level'] = 1;
$data['path'] = '-';
}
return parent::store($data);
}
public function delete(string $ids): mixed
{
return $this->query()->whereIn($this->primaryKey(), explode(',', $ids))->delete();
}
}