ArticleController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace App\Module\Article\AdminControllers;
  3. use App\Module\Article\Enums\STATUS;
  4. use App\Module\Article\Models\Article;
  5. use App\Module\Article\Models\ArticleCate;
  6. use App\Module\Article\Repositories\ArticleRepositories;
  7. use Dcat\Admin\Admin;
  8. use Dcat\Admin\Form;
  9. use Dcat\Admin\Grid;
  10. use Dcat\Admin\Http\Controllers\AdminController;
  11. use Spatie\RouteAttributes\Attributes\Resource;
  12. #[Resource('article')]
  13. class ArticleController extends AdminController
  14. {
  15. /**
  16. * 创建 Repository 实例
  17. *
  18. * @return ArticleRepositories
  19. */
  20. protected function repository()
  21. {
  22. return new ArticleRepositories();
  23. }
  24. /**
  25. * @return Grid
  26. */
  27. protected function grid()
  28. {
  29. return Grid::make($this->repository(), function (Grid $grid) {
  30. $grid->column('id')->sortable();
  31. $grid->column('title')->limit(30);
  32. $grid->column('category_id', '分类')->using(ArticleCate::getCate());
  33. $grid->column('status', '状态')->using(STATUS::getValueDescription());
  34. $grid->column('created_at')->sortable();
  35. $grid->column('updated_at')->sortable();
  36. $grid->filter(function (Grid\Filter $filter) {
  37. $filter->like('title', '标题');
  38. $filter->equal('category_id', '分类')->select(ArticleCate::getCate());
  39. $filter->equal('status', '状态')->select(STATUS::getValueDescription());
  40. });
  41. $grid->actions(function (Grid\Displayers\Actions $actions) {
  42. $actions->disableView();
  43. });
  44. });
  45. }
  46. /**
  47. * @return Form
  48. */
  49. protected function form()
  50. {
  51. return Form::make(Article::class, function (Form $form) {
  52. $form->text('title', '标题')->required();
  53. $form->radio('category_id', '分类')->options(ArticleCate::getCate())->required();
  54. $form->radio('status')->options(STATUS::getValueDescription());
  55. $form->editor('content', '内容')->required();
  56. $form->hidden('created_by')->value(Admin::user()->getOriginal('id'));
  57. });
  58. }
  59. }