Laravel 和hyperf 中model常用方法及示例

在 Hyperf 中使用 ORM(如基于 Hyperf\DbConnection\Model\Model 的模型类)时,常用的 Model 方法可以大致分为以下几类:查询类、创建类、更新类、删除类、聚合类等。

下面我将分类列出常用方法、示例以及使用场景,方便你在开发中快速参考。


✅ 一、查询类

方法示例用法使用场景
find($id)User::find(1)按主键查询一条记录
findOrFail($id)User::findOrFail(1)找不到就抛异常
first()User::where('email', 'a@b.com')->first()获取第一条匹配记录
firstOrFail()同上但找不到抛异常用于必须找到一条数据的情况
get()User::where('status', 1)->get()获取多条记录
pluck()User::pluck('email')获取单字段集合
value()User::where('id', 1)->value('email')获取某字段值
exists()User::where('email', 'a@b.com')->exists()判断是否存在
count()User::where('status', 1)->count()计数
paginate()User::paginate(15)分页数据
chunk($size, $callback)User::chunk(100, fn($users) => ... )分批处理大数据集

✅ 二、插入类

方法示例用法使用场景
create([...])User::create(['name' => 'Tom'])使用 fillable 插入数据
insert([...])User::insert([['name' => 'Tom'], ['name' => 'Bob']])批量插入
insertOrIgnore([...])User::insertOrIgnore([...])插入时忽略重复键冲突
firstOrCreate()User::firstOrCreate(['email' => 'a@b.com'], ['name' => 'Tom'])如果不存在则创建
updateOrCreate()User::updateOrCreate(['email' => 'a@b.com'], ['name' => 'Tom'])存在更新,不存在创建

✅ 三、更新类

方法示例用法使用场景
update([...])User::where('id', 1)->update(['name' => 'New'])批量更新
increment('age')User::where('id', 1)->increment('age')累加字段值
decrement('age')同上累减字段值
$model->save()$user->name = 'New'; $user->save();保存当前模型状态

✅ 四、删除类

方法示例用法使用场景
destroy($id)User::destroy(1)destroy([1,2,3])按主键删除
delete()User::where('status', 0)->delete()条件删除
$model->delete()$user->delete()删除当前模型实例

✅ 五、聚合类

方法示例用法使用场景
count()User::count()记录总数
max('score')User::max('score')最大值
min('score')User::min('score')最小值
avg('score')User::avg('score')平均值
sum('score')User::sum('score')总和

✅ 六、其他辅助方法

方法示例用法使用场景
with('relation')User::with('posts')->get()预加载关系
toArray()$user->toArray()转数组
toJson()$user->toJson()转 JSON
refresh()$user->refresh()重新从数据库加载数据

✅ 示例:完整的使用场景(用户注册流程)

$user = User::firstOrCreate(
    ['email' => 'tom@example.com'],
    ['name' => 'Tom', 'password' => Hash::make('secret')]
);
  • 场景:注册时查找用户是否存在,存在就返回,不存在就新建;
  • 自动填充 created_atupdated_at 字段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值