1

私のエンティティ

/**
 * Set friend
 *
 * @param \Frontend\ChancesBundle\Entity\UserFriends $friend
 * @return ChanceRequest
 */
public function setFriend(\Frontend\ChancesBundle\Entity\UserFriends $friend = null)
{
    $this->friend = $friend;

    return $this;
}

私の行動

$task = new ChanceRequest();
$form = $this->createFormBuilder($task)
            ->add('friend', 'choice', array(
                'required' => true,
                'expanded' => true,
                'choices' => $fb_friends,
                'multiple' => true,
                'mapped' => true
            ))
            ->getForm();

setFriendはスカラーを期待しているため、これを検証したり、dbに保存したりすることはできません。これは、ユーザーが誰かにメッセージを送信したい友人の数の配列です。どうすれば変更できますか?

私はここで投稿を見ました: Symfony2の選択:「scalar」型の期待される引数、「array」が与えられまし たが、配列を前に置くか、関連するテーブルのために推測すると、これは機能しませ\Frontend$friend.

エンティティを機能させるには、エンティティで何をする必要がありますか?

4

1 に答える 1

1

データベースで見つかった場合friends(たとえば、ユーザーエンティティ)、ManyToManyこれら2つのテーブルの関係を宣言する必要があります。そうでない場合は、friendプロパティをドクトリン配列型にします。友達が有効なエンティティクラスでない場合、あとはカスタムバリデーターとデータトランスフォーマーを作成するだけです。そうでなければ、あなたは何もすることが残っていません。このすべての情報は、公式のsymfonyと教義のドキュメントにあります。

カスタム検証制約を作成する方法

データトランスフォーマーの使用方法

アソシエーションマッピング

協会との協力

于 2013-03-03T00:12:38.687 に答える