我正在使用PhoneNumberBundle来验证我的应用程序中的电话号码。我还将NelmioAliceBundle与AliceFixtureBundle一起使用。以此为起点,我正在为具有PhoneNumberBundle
用于验证电话号码的断言的实体编写固定装置。这是该文件的一个片段:
/**
* @AssertPhoneNumber(defaultRegion="VE")
* @ORM\Column(name="phone", type="phone_number", length=11)
*/
protected $phone;
我不知道如何在夹具本身上使用外部库,所以我看到的唯一解决方案是编写自己的 faker 并返回格式正确的电话号码并传回夹具。然后我这样做了:
TananeFakerProvider.php
class TananeFakerProvider {
public function formatPhoneNumber($fakePhoneNumber)
{
return $this->container->get('libphonenumber.phone_number_util')->parse($fakePhoneNumber);
}
}
服务.yml
services:
tanane.faker.provider:
class: CommonBundle\Tools\TananeFakerProvider
arguments: ["@service_container"]
tags:
- { name: h4cc_alice_fixtures.provider }
最后是 Orders.yml(夹具):
FrontendBundle\Entity\Orders:
Orders{1..50}:
nickname: <text(15)>
# trying to pass the fake number back to the custom faker
phone: <formatPhoneNumber(phoneNumber())>
email: <companyEmail()>
fiscal_address: <address()>
shipping_address: <address()>
shipping_from: <randomElement(array('MRW','DOMESA', 'ZOOM'))>
payment_type: @PaymentType*
order_amount: <randomFloat(2)>
bank: @Bank*
transaction: <randomNumber()>
comments: <sentence(15)>
secure: <boolean(35)>
person: <randomElement(array(@Natural*, @Legal*))>
status: @OrderStatus*
但我得到了这个错误:
[Symfony\Component\Debug\Exception\ContextErrorException] 注意:使用未定义的常量 phoneNumber - 在 /var/www/html/vendor/nelmio/alice/src/Nelmio/Alice/Loader/Base.php(630) 中假定为“phoneNumber” ) : eval()'d 代码行 1
所以我以错误的方式传递价值,有人可以帮我吗?或者也许给我另一个关于如何实现这一目标的想法?