watson / nameable
将用户姓名格式化为完整、熟悉和缩略形式
3.0.0
2024-08-21 10:32 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- laravel/pint: ^1.17
- phpunit/phpunit: ^10.0|^11.0
README
本软件包提供了一种类型转换器和格式化类,用于展示用户的姓名。它可以获取用户的全名、姓或名、首字母以及常用缩写。您不必在多个数据库列中分隔字段,可以将用户的姓名存储在一个单独的列中,并获取所需的信息。
本软件包基于Basecamp的name_of_person
软件包,用于Ruby/Rails。
安装
您可以通过Composer安装该软件包
composer require watson/nameable
然后使用Nameable
类型转换器来处理任何您希望用作姓名的Eloquent模型。
use Watson\Nameable\Nameable; class User extends Model { protected $casts = [ 'name' => Nameable::class, ]; }
或者,您可以直接与Name
类交互。
use Watson\Nameable\Name; $name = new Name('Dwight', 'Conrad Watson'); $name = Name::from('Dwight Conrad Watson');
使用方法
$user = new User(['name' => 'Dwight Watson']); $user->name->full // Dwight Watson $user->name->first // Dwight $user->name->last // Watson $user->name->familiar // Dwight W. $user->name->abbreviated // D. Watson $user->name->sorted // Watson, Dwight $user->name->initials // DW
此外,还有所有格变体可供使用,它们可以正确地与以s
结尾的姓名一起工作。
$user = new User(['name' => 'Dwight Watson']); $user->name->full_possessive // Dwight Watson's $user->name->first_possessive // Dwight's $user->name->last_possessive // Watson's $user->name->abbreviated_possessive // D. Watson's $user->name->sorted_possessive // Watson, Dwight's $user->name->initials_possessive // DW's $user = new User(['name' => 'Angus Young']); $user->name->full_possessive // Angus Young's $user->name->first_possessive // Angus'
如果用户未提供全名(例如,仅提供名)则属性将省略姓氏。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。