| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- <?php
- namespace Dcat\Admin\Repositories;
- use Dcat\Admin\Contracts\Repository as RepositoryInterface;
- use Dcat\Admin\Contracts\TreeRepository;
- use Dcat\Admin\Form;
- use Dcat\Admin\Grid;
- use Dcat\Admin\Show;
- use Illuminate\Support\Collection;
- use Illuminate\Support\Traits\Macroable;
- use RuntimeException;
- abstract class Repository implements RepositoryInterface, TreeRepository
- {
- use Macroable;
- /**
- * @var string
- */
- protected $keyName = 'id';
- /**
- * @var bool
- */
- protected $isSoftDeletes = false;
- /**
- * 获取主键名称.
- *
- * @return string|array
- */
- public function getKeyName()
- {
- return $this->keyName ?: 'id';
- }
- /**
- * 设置主键名称.
- *
- * @param string|array $keyName
- */
- public function setKeyName($keyName)
- {
- $this->keyName = $keyName;
- }
- /**
- * 获取创建时间字段.
- *
- * @return string
- */
- public function getCreatedAtColumn()
- {
- return 'created_at';
- }
- /**
- * 获取更新时间字段.
- *
- * @return string
- */
- public function getUpdatedAtColumn()
- {
- return 'updated_at';
- }
- /**
- * 是否使用软删除.
- *
- * @return bool
- */
- public function isSoftDeletes()
- {
- return $this->isSoftDeletes;
- }
- /**
- * @param bool $isSoftDeletes
- */
- public function setIsSoftDeletes(?bool $isSoftDeletes)
- {
- $this->isSoftDeletes = $isSoftDeletes;
- }
- /**
- * 获取Grid表格数据.
- *
- * @param Grid\Model $model
- *
- * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|Collection|array
- */
- public function get(Grid\Model $model)
- {
- throw new RuntimeException('This repository does not support "get" method.');
- }
- /**
- * 获取编辑页面数据.
- *
- * @param Form $form
- *
- * @return array|\Illuminate\Contracts\Support\Arrayable
- */
- public function edit(Form $form)
- {
- throw new RuntimeException('This repository does not support "edit" method.');
- }
- /**
- * 获取详情页面数据.
- *
- * @param Show $show
- *
- * @return array|\Illuminate\Contracts\Support\Arrayable
- */
- public function detail(Show $show)
- {
- throw new RuntimeException('This repository does not support "detail" method.');
- }
- /**
- * 新增记录.
- *
- * @param Form $form
- *
- * @return mixed
- */
- public function store(Form $form)
- {
- throw new RuntimeException('This repository does not support "store" method.');
- }
- /**
- * 查询更新前的行数据.
- *
- * @param Form $form
- *
- * @return array
- */
- public function updating(Form $form)
- {
- throw new RuntimeException('This repository does not support "updating" method.');
- }
- /**
- * 更新数据.
- *
- * @param Form $form
- *
- * @return bool
- */
- public function update(Form $form)
- {
- throw new RuntimeException('This repository does not support "update" method.');
- }
- /**
- * 删除数据.
- *
- * @param Form $form
- * @param array $deletingData
- *
- * @return mixed
- */
- public function delete(Form $form, array $deletingData)
- {
- throw new RuntimeException('This repository does not support "destroy" method.');
- }
- /**
- * 查询删除前的行数据.
- *
- * @param Form $form
- *
- * @return array
- */
- public function deleting(Form $form)
- {
- throw new RuntimeException('This repository does not support "deleting" method.');
- }
- /**
- * 获取主键字段名称.
- *
- * @return string
- */
- public function getPrimaryKeyColumn()
- {
- return $this->getKeyName();
- }
- /**
- * 获取父级ID字段名称.
- *
- * @return string
- */
- public function getParentColumn()
- {
- return 'parent_id';
- }
- /**
- * 获取标题字段名称.
- *
- * @return string
- */
- public function getTitleColumn()
- {
- return 'title';
- }
- /**
- * 获取排序字段名称.
- *
- * @return string
- */
- public function getOrderColumn()
- {
- return 'order';
- }
- /**
- * 保存层级数据排序.
- *
- * @param array $tree
- * @param int $parentId
- */
- public function saveOrder($tree = [], $parentId = 0)
- {
- throw new RuntimeException('This repository does not support "saveOrder" method.');
- }
- /**
- * 设置数据查询回调.
- *
- * @param \Closure|null $query
- *
- * @return $this
- */
- public function withQuery($queryCallback)
- {
- throw new RuntimeException('This repository does not support "withQuery" method.');
- }
- /**
- * 获取层级数据.
- *
- * @return array
- */
- public function toTree()
- {
- throw new RuntimeException('This repository does not support "toTree" method.');
- }
- /**
- * @param mixed ...$params
- *
- * @return $this
- */
- public static function make(...$params)
- {
- return new static(...$params);
- }
- }
|