Update README.md

This commit is contained in:
TOP糯米 2019-09-05 19:20:33 +08:00 committed by GitHub
parent cd65e2a255
commit a329ff4e68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 75 additions and 11 deletions

View File

@ -652,6 +652,24 @@ $this->select(function ($model) {
见join方法 见join方法
23. transaction
事务处理
```
use app\home\model\Users;
$userModel = model(Users::class);
$res = $userModel->transaction(function ($model) {
$model->delete(4);
$model->update([
'id' => 3,
], 1);
});
var_dump($res);
```
上例中开启了一个事务先删除一条记录再更新一条记录的ID为已存在的ID更新操作必定不会执行成功所以数据将会执行回滚删除数据也不会执行成功var_dump($res)结果为false。返回值为布尔值成功返回true失败返回false。transaction方法接收一个匿名函数匿名函数形参为当前模型。SQL执行失败时会回滚事务也可以通过手动抛出DatabaseException异常来回滚事务。
#### 属性 #### 属性
1. $table 1. $table
指定当前模型的表名(优先于模型名称) 指定当前模型的表名(优先于模型名称)
@ -676,7 +694,14 @@ protected $map = [
]; ];
``` ```
4. $inReplace 4. $prefix
指定当前表前缀
```
protected $prefix = 'cms_';
```
5. $inReplace
入库时替换值 入库时替换值
数据入库时自动格式化时间为unix时间戳 数据入库时自动格式化时间为unix时间戳
@ -694,7 +719,7 @@ protected function formatTime($time)
注意当以字段为键名的数组的值为一个字符串时则该字符串为即将调用的函数如果值为一个数组且无第二个值或第二个值为false、空则该数组第一个值为即将调用的函数如第二个值为true则表示当前调用的方法存在于本类或父类中。 注意当以字段为键名的数组的值为一个字符串时则该字符串为即将调用的函数如果值为一个数组且无第二个值或第二个值为false、空则该数组第一个值为即将调用的函数如第二个值为true则表示当前调用的方法存在于本类或父类中。
5. $outReplace 6. $outReplace
出库时替换值 出库时替换值
``` ```
@ -719,12 +744,12 @@ protected function outFormatSex($sex)
注意当以字段为键名的数组的值为一个字符串时则该字符串为即将调用的函数如果值为一个数组且无第二个值或第二个值为false、空则该数组第一个值为即将调用的函数如第二个值为true则表示当前调用的方法存在于本类或父类中。 注意当以字段为键名的数组的值为一个字符串时则该字符串为即将调用的函数如果值为一个数组且无第二个值或第二个值为false、空则该数组第一个值为即将调用的函数如第二个值为true则表示当前调用的方法存在于本类或父类中。
6. $updateReplace 7. $updateReplace
数据更新时替换值 数据更新时替换值
基本类似于inReplace但仅当执行更新操作时执行。 基本类似于inReplace但仅当执行更新操作时执行。
7. $validate 8. $validate
自动验证 自动验证
验证不为空 验证不为空
@ -797,6 +822,8 @@ $cache->set('lists', [0, 1, 2, 3, 4, 5], 30);
$cache->get('lists'); $cache->get('lists');
``` ```
第一个参数为缓存标识,第二个可选参数为当前缓存不存在即将调用的匿名函数,并将返回值当作第一次调用的缓存值。
3. remove 3. remove
根据key删除缓存 根据key删除缓存
@ -812,6 +839,7 @@ $cache->exists('lists');
``` ```
### 文件缓存 ### 文件缓存
1. 使用判断设置缓存
``` ```
use top\library\cache\driver\File; use top\library\cache\driver\File;
@ -822,17 +850,21 @@ if (!$cache->exists('text')) {
} }
$data = $cache->get('text'); $data = $cache->get('text');
``` ```
### Redis 2. get方法
``` ```
use top\library\cache\driver\Redis; use top\library\cache\driver\File;
$cache = Redis::instance(); $cache = File::instance();
if (!$cache->exists('text')) { $data = $cache->get('text', function ($cache) {
$text = '测试'; $text = '测试';
$cache->set('text', $text); $cache->set('text', $text);
} return $text;
$data = $cache->get('text'); });
``` ```
### Redis
使用方式同File缓存
### 自定义缓存类 ### 自定义缓存类
文件存放位置 'framework/library/cache/driver' 。必须实现CacheIfs接口具体方法看缓存介绍。 文件存放位置 'framework/library/cache/driver' 。必须实现CacheIfs接口具体方法看缓存介绍。
@ -925,10 +957,42 @@ $effect、$table、$join、$on、$where、$order、$limit
执行SQL语句。参数列表 执行SQL语句。参数列表
$query $query
8. close 8. begin
开启数据库事务
9. commit
提交事务
10. rollback
回滚
11. close
关闭数据库连接。 关闭数据库连接。
Database类的事务与Model类不同Model类进行了更进一步的封装。Database类事务使用示例
```
use top\library\Database;
$db = Database::table('users');
// 开启事务
$db->begin();
try {
// 一些对数据库的改动操作
// 提交
$db->commit();
} catch (DatabaseException $exception) {
// 回滚
$db->rollback();
// 其他操作
}
```
### Request类 ### Request类
获取实例 获取实例
1. instance方法获取单例 1. instance方法获取单例