adjust property name of demo

This commit is contained in:
huangzhhui 2019-03-25 19:00:55 +08:00
parent 880e8fd1f7
commit df7679dcfb
4 changed files with 40 additions and 47 deletions

View File

@ -67,21 +67,21 @@ class DbQueryExecutedListener implements ListenerInterface
## 模型事件
| 事件名 | 触发实际 | 是否阻断 | 备注 |
|:------------:|:----------------:|:--------:|:--------------------------------:|
| booting | 模型首次加载前 | 否 | 进程生命周期中只会触发一次 |
| booted | 模型首次加载后 | 否 | 进程生命周期中只会触发一次 |
| retrieved | 填充数据后 | 否 | 每当模型从DB或缓存查询出来后触发 |
| creating | 数据创建时 | 是 | |
| created | 数据创建后 | 否 | |
| updating | 数据更新时 | 是 | |
| updated | 数据更新后 | 否 | |
| 事件名 | 触发实际 | 是否阻断 | 备注 |
|:------------:|:----------------:|:--------:|:-------------------------- --:|
| booting | 模型首次加载前 | 否 | 进程生命周期中只会触发一次 |
| booted | 模型首次加载后 | 否 | 进程生命周期中只会触发一次 |
| retrieved | 填充数据后 | 否 | 每当模型从DB或缓存查询出来后触发 |
| creating | 数据创建时 | 是 | |
| created | 数据创建后 | 否 | |
| updating | 数据更新时 | 是 | |
| updated | 数据更新后 | 否 | |
| saving | 数据创建或更新时 | 是 | |
| saved | 数据创建或更新后 | 否 | |
| restoring | 软删除数据回复时 | 是 | |
| restored | 软删除数据回复后 | 否 | |
| deleting | 数据删除时 | 是 | |
| deleted | 数据删除后 | 否 | |
| deleting | 数据删除时 | 是 | |
| deleted | 数据删除后 | 否 | |
| forceDeleted | 数据强制删除后 | 否 | |
模型事件使用十分简单,只需要在模型中增加对应的方法即可。例如下方保存数据时,触发 `saving` 事件,主动覆写 `created_at` 字段。

View File

@ -12,7 +12,7 @@ composer require hyperf/model-cache
模型缓存的配置在 `databases` 中。示例如下
| 配置 | 类型 | 默认值 | 备注 |
| 配置 | 类型 | 默认值 | 备注 |
|:-----------:|:------:|:------------------------------------------------------:|:-----------------------------------:|
| handler | string | \Hyperf\DbConnection\Cache\Handler\RedisHandler::class | 无 |
| cache_key | string | 'mc:%s:m:%s:%s:%s' | mc:缓存前缀:m:表名:主键KEY:主键值 |
@ -54,7 +54,7 @@ return [
## 使用
模型缓存的使用十分简单只需要在对应Model中实现 `Hyperf\ModelCache\CacheableInterface` 接口,当然,框架已经提供了对应实现,只需要引入Trait `Hyperf\ModelCache\Cacheable` 即可。
模型缓存的使用十分简单只需要在对应Model中实现 `Hyperf\ModelCache\CacheableInterface` 接口,当然,框架已经提供了对应实现,只需要引入 `Hyperf\ModelCache\Cacheable` Trait 即可。
```php
<?php
@ -63,13 +63,14 @@ declare(strict_types=1);
namespace App\Models;
use Hyperf\DbConnection\Model\Model;
use Hyperf\ModelCache\Cacheable;
use Hyperf\ModelCache\CacheableInterface;
/**
* @property $id
* @property $name
* @property $sex
* @property $gender
* @property $created_at
* @property $updated_at
*/
@ -89,9 +90,9 @@ class User extends Model implements CacheableInterface
*
* @var array
*/
protected $fillable = ['id', 'name', 'sex', 'created_at', 'updated_at'];
protected $fillable = ['id', 'name', 'gender', 'created_at', 'updated_at'];
protected $casts = ['id' => 'integer', 'sex' => 'integer'];
protected $casts = ['id' => 'integer', 'gender' => 'integer'];
}
$model = User::findFromCache($id);
@ -106,7 +107,7 @@ $models = User::findManyFromCache($ids);
2) "1"
3) "name"
4) "Hyperf"
5) "sex"
5) "gender"
6) "1"
7) "created_at"
8) "2018-01-01 00:00:00"

View File

@ -23,7 +23,7 @@ use Hyperf\DbConnection\Model\Model;
/**
* @property $id
* @property $name
* @property $sex
* @property $gender
* @property $created_at
* @property $updated_at
*/
@ -41,14 +41,14 @@ class User extends Model
*
* @var array
*/
protected $fillable = ['id', 'name', 'sex', 'created_at', 'updated_at'];
protected $fillable = ['id', 'name', 'gender', 'created_at', 'updated_at'];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = ['id' => 'integer', 'sex' => 'integer'];
protected $casts = ['id' => 'integer', 'gender' => 'integer'];
}
```

View File

@ -2,38 +2,30 @@
## 前言
> `hyperf/database` 衍生于 `laravel/database`,我们对它进行了一些改造,大部分功能保持了相同。在这里感谢一下 Laravel 开发组,实现了如此强大好用的 ORM 组件。
> [hyperf/database](https://github.com/hyperf-cloud/database) 衍生于 [illuminate/database](https://github.com/illuminate/database),我们对它进行了一些改造,大部分功能保持了相同。在这里感谢一下 Laravel 开发组,实现了如此强大好用的 ORM 组件。
`hyperf/database` 组件是基于 `laravel/database` 衍生出来的组件,我们对它进行了一些改造,从设计上是允许用于其它 PHP-FPM 框架或基于 Swoole 的框架中的,而在 Hyperf 里就需要提一下 `hyperf/db-connection` 组件,它基于 `hyperf/pool` 实现了数据库连接池并对模型进行了新的抽象以它作为桥梁Hyperf 才能把数据库组件及事件组件接入进来。
```php
<?php
$user = User::query()->where('id', 1)->first();
var_dump($user->toArray());
```
[hyperf/database](https://github.com/hyperf-cloud/database) 组件是基于 [illuminate/database](https://github.com/illuminate/database) 衍生出来的组件,我们对它进行了一些改造,从设计上是允许用于其它 PHP-FPM 框架或基于 Swoole 的框架中的,而在 Hyperf 里就需要提一下 [hyperf/db-connection](https://github.com/hyperf-cloud/db-connection) 组件,它基于 [hyperf/pool](https://github.com/hyperf-cloud/pool) 实现了数据库连接池并对模型进行了新的抽象以它作为桥梁Hyperf 才能把数据库组件及事件组件接入进来。
## 配置
默认配置如下,数据库支持多库配置,默认为`default`。
默认配置如下,数据库支持多库配置,默认为 `default`
| 配置项 | 默认值 | 备注 |
|:--------------------:|:---------------:|:------------------:|
| driver | 无 | 数据库引擎 |
| host | 无 | 数据库地址 |
| database | 无 | 数据库默认DB |
| username | 无 | 数据库用户名 |
| password | null | 数据库密码 |
| charset | utf8 | 数据库编码 |
| collation | utf8_unicode_ci | 数据库编码 |
| prefix | 空字符串 | 数据库模型前缀 |
| pool.min_connections | 1 | 连接池内最少连接数 |
| pool.max_connections | 10 | 连接池内最大连接数 |
| pool.connect_timeout | 10.0 | 连接等待超时时间 |
| pool.wait_timeout | 3.0 | 超时时间 |
| pool.heartbeat | -1 | 心跳 |
| pool.max_idle_time | 60.0 | 最大闲置时间 |
| 配置项 | 类型 | 默认值 | 备注 |
|:--------------------:|:------:|:---------------:|:------------------:|
| driver | string | 无 | 数据库引擎 |
| host | string | 无 | 数据库地址 |
| database | string | 无 | 数据库默认DB |
| username | string | 无 | 数据库用户名 |
| password | string | null | 数据库密码 |
| charset | string | utf8 | 数据库编码 |
| collation | string | utf8_unicode_ci | 数据库编码 |
| prefix | string | '' | 数据库模型前缀 |
| pool.min_connections | int | 1 | 连接池内最少连接数 |
| pool.max_connections | int | 10 | 连接池内最大连接数 |
| pool.connect_timeout | float | 10.0 | 连接等待超时时间 |
| pool.wait_timeout | float | 3.0 | 超时时间 |
| pool.heartbeat | int | -1 | 心跳 |
| pool.max_idle_time | float | 60.0 | 最大闲置时间 |
```php
<?php