cupoftea/eloquent-snake-relations

一个简单的特质,用于通过snake_case属性访问Eloquent关系

v1.1.0 2019-05-10 22:40 UTC

This package is auto-updated.

Last update: 2024-09-11 15:34:25 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version StyleCI License

Eloquent snake_case Relations

一个简单的特质,用于通过snake_case属性访问Eloquent关系

安装

通过运行composer require cupoftea/eloquent-snake-relations使用composer进行安装。

安装后,通过make:model命令创建的模型将自动扩展CupOfTea\Database\Eloquent\Model,以允许通过snake_cased关系名称访问关系。

要更新用户模型,将Illuminate\Foundation\Auth\User导入替换为CupOfTea\Auth\User。您可以使用导入时使用的别名。

如果您已经在应用程序中创建了一些模型,只需将Illuminate\Database\Eloquent\Model导入替换为CupOfTea\Database\Eloquent\Model,或者对于Pivot模型,将Illuminate\Database\Eloquent\Relations\Pivot导入替换为CupOfTea\Database\Eloquent\Relations\Pivot

或者,如果您正在扩展自己的模型类,可以在该模型上使用CupOfTea\Database\Eloquent\Concerns\HasSnakeCaseRelations特质,或者将其从CupOfTea\Database\Eloquent\Model扩展,而不是从Illuminate\Database\Eloquent\Model扩展。

用法

要访问模型关系,现在可以使用snake_case属性,即使关系方法是camelCase。例如,如果您的关联方法是定义为User::creditCards(),您可以通过$user->credit_cards访问它。

注意:请注意,只有属性访问可以使用snake_case。附加的关系查询或预加载仍然应使用原始的关系方法名称。例如,$creditCards = User::find(1)->creditCards()->orderBy('expires')->get();,或$users = User::with('creditCards')->all();