98 lines
3.2 KiB
PHP
98 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Controllers\Advert;
|
|
|
|
use App\Models\Advert;
|
|
use App\Models\Category;
|
|
use Dcat\Admin\Form;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Show;
|
|
use Dcat\Admin\Controllers\AdminController;
|
|
|
|
class IndexController extends AdminController
|
|
{
|
|
|
|
protected $title = '图片管理';
|
|
|
|
/**
|
|
* Make a grid builder.
|
|
* @return Grid
|
|
*/
|
|
protected function grid()
|
|
{
|
|
return Grid::make(Advert::with(['category']), function (Grid $grid) {
|
|
$grid->column('id')->sortable();
|
|
$grid->column('cover', '图片')->image('', 60, 60);
|
|
$grid->column('category.title', '分类名称');
|
|
|
|
$grid->column('title', '图片名称');
|
|
$grid->column('url', '地址');
|
|
$grid->column('sort', '排序');
|
|
$grid->column('created_at');
|
|
$grid->column('updated_at')->sortable();
|
|
|
|
$grid->filter(function (Grid\Filter $filter) {
|
|
$filter->equal('id');
|
|
$filter->like('title', '图片名称');
|
|
$filter->equal('category.id', '分类名称')->select(Category::selectOptions(function ($model) {
|
|
return $model->where('status', 1)->where('type', Category::TYPE_ADVERT);
|
|
}, '所有分类'));
|
|
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a show builder.
|
|
* @param mixed $id
|
|
* @return Show
|
|
*/
|
|
protected function detail($id)
|
|
{
|
|
return Show::make($id, new Advert(), function (Show $show) {
|
|
$show->field('id');
|
|
$show->field('created_at');
|
|
$show->field('updated_at');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a form builder.
|
|
* @return Form
|
|
*/
|
|
protected function form()
|
|
{
|
|
return Form::make(new Advert(), function (Form $form) {
|
|
$form->text('title', '图片名称')->required();
|
|
$form->select('category_id', '所属分类')
|
|
->options(Category::selectOptions(function ($model) {
|
|
return $model->where('status', 1)->where('type', Category::TYPE_ADVERT);
|
|
}, '选择分类'))
|
|
->rules('required|min:1', [
|
|
'required' => '必须选择所属分类',
|
|
'min' => '必须选择所属分类',
|
|
]);
|
|
$form->image('cover', '封面图片')
|
|
->move('images/' . date('Y/m/d'))
|
|
->uniqueName();
|
|
// $form->image('cover', '封面图片')
|
|
// ->rules(function ($form) {
|
|
// if ($form->model()->cover != []) {
|
|
// return 'nullable|image';
|
|
// } else {
|
|
// return 'required';
|
|
// }
|
|
// })
|
|
// ->move('images/' . date('Y/m/d'))
|
|
// ->removable()
|
|
// ->uniqueName();
|
|
$form->text('url', '链接地址');
|
|
$form->number('sort', '排序')
|
|
->default(1)
|
|
->required()
|
|
->help('数字越大越靠前');
|
|
});
|
|
}
|
|
|
|
}
|