PackPoemController.php
2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
namespace App\Admin\Controllers;
use App\Admin\Renderable\PoemTable;
use App\Admin\Repositories\OnePoem;
use App\Admin\Repositories\PackPoem;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
class PackPoemController extends AdminController
{
protected $title = '众妙';
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new PackPoem(), function (Grid $grid) {
$grid->model()->with('poem');
$grid->column('id')->sortable();
$grid->column('title');
$grid->column('subtitle');
$grid->column('left_text');
$grid->column('right_text');
$grid->column('poem.title');
$grid->column('poem.content')->limit(50);
$grid->column('poem.author');
// $grid->column('state');
$grid->column('created_at');
$grid->column('updated_at')->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new PackPoem(), function (Show $show) {
$show->field('id');
$show->field('title');
$show->field('subtitle');
$show->field('left_text');
$show->field('right_text');
$show->field('poetry_id');
$show->field('state');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(PackPoem::with(['poem']), function (Form $form) {
$form->display('id');
$form->text('title');
$form->text('subtitle');
$form->text('left_text');
$form->text('right_text');
$form->selectTable('poem.poem_id','一言')
->title('一言诗词库')
->from(PoemTable::make())
->model(OnePoem::class, 'id', 'title');
$form->display('created_at');
$form->display('updated_at');
});
}
}