アプリケーションで電話番号を検証するためにPhoneNumberBundleを使用しています。私はAliceFixtureBundleと一緒にNelmioAliceBundleも使用しています。PhoneNumberBundle
それを出発点として、電話番号を検証するためのアサートを持つエンティティのフィクスチャを作成しています。そのファイルのスニペットを次に示します。
/**
* @AssertPhoneNumber(defaultRegion="VE")
* @ORM\Column(name="phone", type="phone_number", length=11)
*/
protected $phone;
フィクスチャ自体で外部ライブラリを使用する方法がわからないので、独自のフェイカーを作成し、適切にフォーマットされた電話番号を返してフィクスチャに戻すかどうかを確認する唯一の解決策です。それから私はこれをしました:
TananeFakerProvider.php
class TananeFakerProvider {
public function formatPhoneNumber($fakePhoneNumber)
{
return $this->container->get('libphonenumber.phone_number_util')->parse($fakePhoneNumber);
}
}
services.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 ) : eval() されたコード行 1
だから私は間違った方法で値を渡しています。これについて何か助けてもらえますか? または、これを達成する方法について別のアイデアを教えてください。