Files
new_ine/app/Admin/Controllers/Video/IndexController.php
2022-09-02 16:10:50 +08:00

99 lines
2.8 KiB
PHP

<?php
namespace App\Admin\Controllers\Video;
use App\Models\Advert;
use App\Models\Category;
use App\Models\Video;
use Encore\Admin\Controllers\AdminController;
use Encore\Admin\Form;
use Encore\Admin\Grid;
class IndexController extends AdminController
{
protected $title = '视频资源';
protected function grid()
{
$grid = new Grid(new Video());
$grid->filter(function ($filter) {
$filter->column(1 / 2, function ($filter) {
$filter->like('title', '视频名称');
});
$filter->column(1 / 2, function ($filter) {
$filter->like('category.id', '分类名称')
->select(Category::where([
'status' => 1,
'type' => Category::TYPE_VIDEO,
])->pluck('title', 'id'));
});
$filter->disableIdFilter();
});
$grid->column('id');
$grid->column('title', '视频名称')->width('500');
$grid->column('cover', '封面')->image();
$grid->column('link', '视频地址')->downloadable();
$grid->column('category.title', '分类名称');
$grid->column('sort', '排序');
$grid->column('created_at', '发布时间');
return $grid;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form(): Form
{
$form = new Form(new Video());
$form->text('title', '视频名称')->required();
$form->select('category_id', '所属分类')
->options(function () {
return Category::query()
->where('status', 1)
->where('type', Category::TYPE_VIDEO)
->pluck('title', 'id');
})
->rules('required|min:1', [
'required' => '必须选择所属分类',
'min' => '必须选择所属分类',
]);
$form->image('cover', '封面')
->rules('image|mimes:jpeg,jpg,png')
->move('images/'.date('Y/m/d'))
->removable()
->uniqueName();
$form->file('link', '视频')
->rules(function ($form) {
if ($form->model()->cover != []) {
return 'nullable|mimetypes:video/avi,video/mpeg,video/mp4';
} else {
return 'required|mimetypes:video/avi,video/mpeg,video/mp4';
}
})
->move('videos/'.date('Y/m/d'))
->removable()
->uniqueName();
$form->number('sort', '排序')
->default(1)
->required()
->help('数字越大越靠前');
$form->datetime('created_at', '发布时间');
return $form;
}
}