2017-02-27 7 views
1

私はカスタムフェイザーとSymfonyでフィクスチャローダークラスを作成しました。Alice Nelmio Bundle Fixtures 2.xのカスタムフェイザーに現在の変数を渡します。

このカスタム関数の1つは、非ランダム値に応じて名前の配列から名前を返す必要があります。我々はfixtures.ymlファイル内でこのような何かを行うことができたようアリス2.xの

とエンティティのコレクションを作成するとき、私は、この値は$現在の変数になりたい:

user{1..10}: 
    name: someName<current()> 

私は考えそのように私のカスタム関数にその現在の値を渡したい:

user{1..10}: 
    name: pickFromArray($current) 

私は)(現在、$電流を試してみた、、、.... 成功せず。

ありがとうございます!

答えて

0

私はあなたがそうすることはできないと思います。 は、私の意見では、最良のオプションは、プロセッサに名前を選ぶです:pickFromArray()はあなたのプロセッサ内のメソッドである

public function postProcess($object) 
{ 
    if (!$object instanceof User) { 
     return false; 
    } 

    $object->setName($this->pickFromArray($object)); 

    return true; 
} 

+0

ありがとうございました!私は重複を避けたいのでランダムな関数を使用したくない秩序を気にしませんが、名前とイベントはたくさんあります。私はグローバルな静的変数または並べ替えを使用して、この作業を得ることができると思います。 –

+0

OKだから、独自のFaker Formatterを作成する必要があります。 https://knpuniversity.com/screencast/alice-fixtures/fixturesをご覧ください。必要なデータを生成することができます。また、重複を避けるためにymlファイルに '(unique)'キーワードを追加することもできます:https://github.com/nelmio/alice/blob/master/doc/complete-reference.md#handling-unique-constraints –

0

パラメータとして戻り値<current()>を使用する必要があります。 hautelook/AliceBundleでテストされています。

user{1..10}: 
    name: <pickFromArray(<current()>)> 
関連する問題