cupoftea / eloquent-snake-relations
一个简单的特质,用于通过snake_case属性访问Eloquent关系
Requires
- cupoftea/package: ^1.4
- illuminate/database: ^5.8
- illuminate/support: ^5.8
Requires (Dev)
- laravel/framework: ^5.8
This package is auto-updated.
Last update: 2024-09-11 15:34:25 UTC
README
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();