VideoController.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Http\Controllers\Controller;
  4. use App\Model\Video;
  5. use Encore\Admin\Form;
  6. use Encore\Admin\Grid;
  7. use Encore\Admin\Facades\Admin;
  8. use Encore\Admin\Layout\Content;
  9. use Encore\Admin\Controllers\ModelForm;
  10. use function Clue\StreamFilter\fun;
  11. class VideoController extends Controller
  12. {
  13. use ModelForm;
  14. public function index()
  15. {
  16. return Admin::content(function (Content $content) {
  17. $content->header('视频');
  18. $content->description('列表');
  19. $content->body($this->grid());
  20. });
  21. }
  22. public function create()
  23. {
  24. return Admin::content(function (Content $content) {
  25. $content->header('视频');
  26. $content->description('新增');
  27. $content->body($this->form());
  28. });
  29. }
  30. public function edit($id)
  31. {
  32. return Admin::content(function (Content $content) use ($id) {
  33. $content->header('视频');
  34. $content->description('列表');
  35. $content->body($this->form($id)->edit($id));
  36. });
  37. }
  38. protected function form($id = '')
  39. {
  40. return Admin::form(Video::class, function (Form $form) {
  41. $form->display('id' , '编号');
  42. $form->text('title' , '标题')->required();
  43. // $form->file('cover_img' , '封面图')->uniqueName();
  44. // $form->text('page_view' , '页面浏览数');
  45. $form->file('video_url' , '视频')->uniqueName();
  46. $form->select('status' , '视频状态')->options([1 => '正常' , 2 => '隐藏']);
  47. });
  48. }
  49. // Grid
  50. protected function grid()
  51. {
  52. return Admin::grid(Video::class, function (Grid $grid) {
  53. $grid->id('编号')->sortable();
  54. $grid->model()->orderBy('id','desc');
  55. $grid->title('标题');
  56. $grid->video_url('视频')->display(function ($video_url) {
  57. $url = env('APP_URL').'/uploads/'.$video_url;
  58. return '<video width="200" height="150" controls><source src="' . $url . '"></video>';
  59. })->link();
  60. $grid->page_view('浏览数');
  61. $grid->created_at('创建时间');
  62. $grid->updated_at('更新时间');
  63. $grid->status('状态')->display(function ($status){
  64. if(1 == $status) {
  65. return "<span class='btn btn-success'>正常</span>";
  66. } else {
  67. return "<span class='btn btn-danger'>隐藏</span>";
  68. }
  69. });
  70. // 禁用导出数据按钮
  71. $grid->actions(function ($actions) {
  72. $actions->disableView();
  73. //$actions->disableEdit();
  74. });
  75. });
  76. }
  77. }