PainterController.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace Tests\Controllers;
  3. use Dcat\Admin\Controllers\AdminController;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Show;
  7. use Tests\Models\Painter;
  8. class PainterController extends AdminController
  9. {
  10. /**
  11. * Make a grid builder.
  12. *
  13. * @return Grid
  14. */
  15. protected function grid()
  16. {
  17. return Grid::make(new Painter(), function (Grid $grid) {
  18. $grid->id->sortable();
  19. $grid->username;
  20. $grid->bio;
  21. $grid->created_at;
  22. $grid->updated_at->sortable();
  23. $grid->filter(function (Grid\Filter $filter) {
  24. $filter->equal('id');
  25. });
  26. });
  27. }
  28. /**
  29. * Make a show builder.
  30. *
  31. * @param mixed $id
  32. *
  33. * @return Show
  34. */
  35. protected function detail($id)
  36. {
  37. return Show::make($id, new Painter(), function (Show $show) {
  38. $show->id;
  39. $show->username;
  40. $show->bio;
  41. $show->created_at;
  42. $show->updated_at;
  43. });
  44. }
  45. /**
  46. * Make a form builder.
  47. *
  48. * @return Form
  49. */
  50. protected function form()
  51. {
  52. return Form::make(Painter::with('paintings'), function (Form $form) {
  53. $form->display('id', 'ID');
  54. $form->text('username')->rules('required');
  55. $form->textarea('bio')->rules('required');
  56. $form->hasMany('paintings', function (Form\NestedForm $form) {
  57. $form->text('title');
  58. $form->textarea('body');
  59. $form->datetime('completed_at');
  60. });
  61. $form->display('created_at', 'Created At');
  62. });
  63. }
  64. }