codewiser / inarticulate
Inarticulate不是Eloquent(Laravel Redis模型)
0.1.12
2020-10-26 13:27 UTC
Requires
- php: >=7.0
- ext-json: *
- laravel/framework: >=6.0
This package is auto-updated.
Last update: 2024-09-26 22:28:55 UTC
README
Inarticulate是一个用于与Redis存储一起工作的Eloquent扩展。
Inarticulate模型与Eloquent模型完全相同。它有一个重要的区别——Redis中没有自增键。因此,Inarticulate有
public $incrementing = false;
Inarticulate Builder扩展了Eloquent Builder,但它只重写了一些方法——find、insert、update、delete和exists。所以请不要调用其他方法——这些方法不适用于Redis。
由于Inarticulate扩展了Eloquent模型,你可以使用属性访问器、修改器、类型转换、属性守卫等。
Redis键
Redis键由三个属性组成——哈希后的APP_KEY、$table
属性和模型主键。Redis键将看起来像
d781b523ed68d90c599832956ff10ea9:article:243
Redis过期
设置正的protected $redisExpire
值以设置模型的过期时间。
用法
为了防止Builder将未定义的属性解析为关系(这是不支持的,你知道)请定义$attributes
数组中的默认属性值。
/** * @property mixed id * @property string title * @property string body */ class Article extneds \Codewiser\Inarticulate\Model { protected $attributes = [ 'title' => null, 'body' => null ]; }
$article = new Article(); $article->exists; // FALSE $article->id = 1; $article->title = "Title"; $article->save(); $article->exists; // TRUE
$article = Article::query()->findOrFail(1); echo $article->title;
Builder方法
大胆地使用这些模型和Builder方法
- find
- findOrFail
- findOrNew
- findMany
- exists
- refresh
获取所有记录
Model::all(); // or Model::query()->get();