watson/nameable

将用户姓名格式化为完整、熟悉和缩略形式

3.0.0 2024-08-21 10:32 UTC

This package is auto-updated.

Last update: 2024-09-21 10:46:03 UTC


README

Latest Version on Packagist Build Status Total Downloads

本软件包提供了一种类型转换器和格式化类,用于展示用户的姓名。它可以获取用户的全名、姓或名、首字母以及常用缩写。您不必在多个数据库列中分隔字段,可以将用户的姓名存储在一个单独的列中,并获取所需的信息。

本软件包基于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)。有关更多信息,请参阅许可证文件