# 建表
## 幻燈片表
### 建表語句
~~~SQL
DROP TABLE IF EXISTS `slides`;
CREATE TABLE `slides` (
`id` smallint(5) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主鍵ID',
`image` varchar(300) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '圖片路徑',
`url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '鏈接地址',
`sort` smallint(5) UNSIGNED NOT NULL DEFAULT 0 COMMENT '排序',
`created_at` timestamp NULL DEFAULT NULL COMMENT '添加時間',
`updated_at` timestamp NULL DEFAULT NULL COMMENT '更新時間',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '廣告表' ROW_FORMAT = DYNAMIC;
~~~
> 以后做別的項目 可以添加 廣告位置 `position` 字段(smallint) 用數字代表不同的位置
### 代碼生成
找到后臺:`開發工具` -> `代碼生成器` 選擇 `slides` 表生成代碼
系統會自動生成該表對應的增刪改查
添加路由: `app\Admin\routes.php`
~~~php
...
Route::group([
...
], function (Router $router) {
...
$router->resource('/slides', 'SlideController');
});
~~~
### 創建菜單
添加一級菜單 `推廣` 路徑為空 添加二級菜單 `幻燈片` 路徑 `/slides`
### 修改表單代碼
`app/Admin/Controllers/SlideController.php`
~~~php
protected function form()
{
return Form::make(new Slide(), function (Form $form) {
$form->display('id');
$form->image('image', '圖片')
->autoUpload()
->removable(false)
->move('/slide/' . date('Ymd'))
->uniqueName()
->saving(function ($v) {
return (string)$v;
})
->required();
$form->url('url')
->saving(function ($v) {
return (string)$v;
})
->required();
$form->number('sort')
->required();
$form->display('created_at');
$form->display('updated_at');
});
}
~~~
### 修改列表代碼
`app/Admin/Controllers/SlideController.php`
~~~php
protected function grid()
{
return Grid::make(new Slide(), function (Grid $grid) {
$grid->column('id')
->sortable();
$grid->column('image')->image('',200,150);
$grid->column('url');
$grid->column('sort');
$grid->column('created_at');
$grid->column('updated_at')
->sortable();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
$grid->disableViewButton();
});
}
~~~