HasBuilder
封裝了增、刪、查、改等所有動作也可按需分別引入
tpext\builder\traits\actions\
名稱空間下的相應動作。
use tpext\builder\traits\HasBuilder;
use tpext\builder\traits\actions;
class Admin extends Controller
{
//方式1.完整引入,引入全部[增刪查改]等動作。
//use HasBuilder;
//方式2.按需引入
//基礎
use actions\HasBase;
//按需載入,避免暴露不必要的action
//列表
use actions\HasIndex;
//新增/修改
use actions\HasAdd;
use actions\HasEdit;
//檢視
use actions\HasView;
//欄位編輯
use actions\HasAutopost;
//禁用/啟用
use actions\HasEnable;
//刪除
use actions\HasDelete;
/**
* 資料篩選條件,配合buildSearch實用,若不需要搜尋,這兩個方法不用重寫
*
* @return void
*/
protected function filterWhere()
{
$searchData = request()->post();
$where = [];
//構建搜尋條件
if (!empty($searchData['username'])) {
$where[] = ['username', 'like', '%' . $searchData['username'] . '%'];
}
return $where;
}
/**
* 構建搜尋
*
* @return void
*/
protected function buildSearch()
{
$search = $this->search;
$search->text('username', '賬號', 3)->maxlength(20);
//構建搜尋表單
}
/**
* Undocumented function
*
* @param array $data
* @return void
*/
protected function buildTable(&$data = [])
{
$table = $this->table;
$table->show('id', 'ID');
$table->show('username', '登入帳號');
//構建表格
//略
$table->getToolbar()
->btnAdd()
->btnDelete();
$table->getActionbar()
->btnEdit()
->btnDelete();
}
/**
* 構建表單
*
* @param boolean $isEdit
* @param array $data
*/
protected function buildForm($isEdit, &$data = [])
{
$form = $this->form;
$form->text('username', '登入帳號')->required()->beforSymbol('<i class="mdi mdi-account-key"></i>');
//構建表單
//略
}
/**
* 儲存資料
*
* @param integer $id
* @return void
*/
private function save($id = 0)
{
$data = request()->only([
'username',
], 'post');
// 資料驗證等,略
if ($id) {
$data['update_time'] = date('Y-m-d H:i:s');
$res = $this->dataModel->where(['id' => $id])->update($data);
} else {
$res = $this->dataModel->create($data);
}
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結