Laravel之ORM总结

insertUsing

1
2
3
4
self::db($partition)->insertUsing(
['date', 'player_id', 'rank', 'updated_at'],
self::db($partition)->where('date', 0)->selectRaw("$date, player_id, `rank`, updated_at"),
);

rename

1
2
Schema::rename($formalTable, $formalTable . '_past_' . date('ymdHi'));
Schema::rename($tmpTable, $formalTable);

原始表达式

有时你需要在查询中使用原始表达式,例如实现 COUNT(0) AS count,这就需要用到 raw 方法。

1
2
3
use Hyperf\DbConnection\Db;

$res = Db::table('user')->select('gender', Db::raw('COUNT(0) AS `count`'))->groupBy('gender')->get();

updateOrCreate/updateOrInsert区别

updateOrCreate() 和 updateOrInsert() 两个方法都是用来保存数据的时候方便操作“存在即更新,反之则创建 ”的

updateOrCreate 方法使用的是 Eloquent ORM 操作的数据库(支持自动添加创建和更新时间),updateOrInsert 方法使用的是查询构造器(不可以自动添加创建和更新时间)

updateOrCreate 返回值是\Illuminate\Database\Eloquent\Model, updateOrInsert 返回的是 bool

有用就打赏一下作者吧!