數據庫操作
一、不允許使用TP框架集成的Db類,例如:
// 錯誤的做法
Db::table('think_user')->where('id', 1)->find();
二、正確做法是統一使用模型類 think\Model
封裝增刪改查的方法
例如:
/**
* 文章模型
* Class Article
* @package app\common\model
*/
class Article extends BaseModel
{
// 定義表名
protected $name = 'article';
// 定義主鍵
protected $pk = 'article_id';
/**
* 文章詳情
* @param int $articleId
* @return array|null|static
*/
public static function detail(int $articleId)
{
return self::get($articleId, ['image', 'category']);
}
/**
* 獲取文章列表
* @return \think\Paginator
* @throws \think\db\exception\DbException
*/
public function getList() {
return $this->where('is_delete', '=', 0)
->order(['sort' => 'asc', 'create_time' => 'desc'])
->paginate(15);
}
}
三、在業務代碼中調用Model類
// 實例化文章模型類
$model = new Article;
// 獲取文章列表記錄
$list = $model->getList();
.....
四、在模型類中操作數據時使用事務處理,用于確保數據的原子性
$this->transaction(function () use ($data) {
// 寫入文章記錄
$this->save($data);
// 記錄后臺操作日志
LogModel::add(xxxx);
});