Laravel Eloquent UUID 包
发布日期:作者: Paul Redmond
我们最近介绍了一个 Eloquent UUID 包,它可以自动在 Eloquent 模型中使用 UUID。我们收到了很多关于 UUID 相关帖子和包的消息。
今天,我们将介绍另一个由 James Mills 开发的 UUID 包,它与我们之前分享的包有所不同。我个人喜欢这个包的原因是它使用了 trait 而不是继承来实现向模型中添加 UUID 的功能。
我们之前介绍的 Eloquent UUID 包采用了一种将 UUID 字段作为数据库表主键的方法。它更倾向于使用类继承来在 Eloquent 模型中启用 UUID 支持。
James 的包采用了不同的方法,它使用了 trait,该 trait 会监听模型的 creating
事件,并将 UUID 自动存储为一个与主键分离的字段。
使用此包提供的 trait,您可以通过 UUID 查询模型,如下所示:
Route::get('/user/{uuid}', function($uuid) { try { return App\User::findByUuidOrFail($uuid); } catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) { abort(404); }});
您还可以使用 withUuid
方法对查询进行范围限制,该方法也有一个复数形式。
// Single UUID$user = App\User::withUuid($uuid)->first(); // Multiple UUIDs$users = App\User::withUuids($uuids)->all();
您可以在 GitHub 上的 jamesmills/eloquent-uuid 上了解更多关于此包的信息,获取完整的安装说明并查看源代码。