nepada / phone-number-doctrine
Doctrine 的电话号码类型。
v2.3.0
2024-04-06 10:31 UTC
Requires
- php: >=8.1.0 <8.4
- brick/phonenumber: ^0.2@dev || ^0.3@dev || ^0.4@dev || ^0.5@dev || ^0.6@dev
- doctrine/dbal: ^3.4@dev || ^4.0@dev
Requires (Dev)
- giggsey/libphonenumber-for-php: >=8.12.34
- mockery/mockery: 1.6.11
- nepada/coding-standard: 7.14.0
- nepada/phpstan-nette-tester: 1.1.0
- nette/tester: 2.5.2
- php-parallel-lint/php-parallel-lint: 1.4.0
- phpstan/phpstan: 1.10.66
- phpstan/phpstan-mockery: 1.1.2
- phpstan/phpstan-strict-rules: 1.5.2
- shipmonk/phpstan-rules: 2.11.3
- spaze/phpstan-disallowed-calls: 3.1.2
README
安装
通过 Composer
$ composer require nepada/phone-number-doctrine
在 bootstrap 中注册类型
\Doctrine\DBAL\Types\Type::addType( \Brick\PhoneNumber\PhoneNumber::class, \Nepada\PhoneNumberDoctrine\PhoneNumberType::class );
在 Nette 中,通过 nettrine/dbal 集成,你可以在配置中注册类型
dbal: connection: types: Brick\PhoneNumber\PhoneNumber: Nepada\PhoneNumberDoctrine\PhoneNumberType
用法
PhoneNumberType
将数据库值映射到电话号码值对象(详情请见 brick/phonenumber)并反向映射。电话号码以 E164 格式存储,即以 '+' 符号开始,后跟一系列数字,包括国家代码和国内号码。
实体中的示例用法
use Doctrine\ORM\Mapping\Column; use Doctrine\ORM\Mapping\Entity; use Brick\PhoneNumber\PhoneNumber; #[Entity] class Contact { #[Column(type: PhoneNumber::class, nullable: false)] private PhoneNumber $phoneNumber; public function getPhoneNumber(): PhoneNumber { return $this->phoneNumber; } }
查询构建器中的示例用法
$result = $repository->createQueryBuilder('foo') ->select('foo') ->where('foo.phoneNumber = :phoneNumber') // the parameter value is automatically normalized to +420123456789 ->setParameter('phoneNumber', '+420 123 456 789', \Brick\PhoneNumber\PhoneNumber::class) ->getQuery() ->getResult();