0

このチュートリアルに行きました。例が機能するようになりました。しかし、自分のケースに合わせてカスタマイズできないため、わかりません。

Facebook の友達ごとに写真を表示し、facebook のプロフィール写真のアドレスをチェックボックス要素の前のイメージ タグに渡したいと考えています。

アップデート

私の行動の一部:

//the array is on part of my update.
$choice_test = array();
$choice_test[] = array('id' => 1, 'username' => 'test');
$choice_test[] = array('id' => 2, 'username' => 'test2');

->add('friend', 'choice', array(
     'required' => true,
     'expanded' => true,
     'choice_list' => $choice_test, //this is my update
     'choices' => $fb_friends_form,  //$fb_friends_form[1]= 'First Lastane';
     'multiple' => true,
     'constraints' => array(new CheckChoicesFbFriends(array('fb_friends_form' => $fb_friends_form))),
     'mapped' => true
     ))

return $this->render('FrontendChancesBundle::createrequest.html.php', array(
                'form' => $form->createView()));

テンプレート:

<?php $view['form']->setTheme($form, array('FrontendDemoBundle:Form')) ;?>
<?php  echo $view['form']->widget($form['friend'])?>

FrontendDemoBundle/Ressources/views/Form/form_widget_pics.html.php:

<input
 type="<?php echo isset($type) ? $view->escape($type) : 'checkbox' ?>"
 <?php if (!empty($value)): ?>value="<?php echo $view->escape($value) ?>"<?php endif ?>
 <?php echo $view['form']->block($form, 'checkbox_widget') ?>
 />

どうすれば変数、私の場合はユーザー名 (`$fb_username[0] = 'username' of facebook to from_widget_pics.html.php) を渡すことができますか?

<img src="www.facebook.com/+FirstLastname> 
<input type="checkbox"
   id="form_friend_0"
   name="form[friend][]"
   value="1"/> 
<label for="form_friend_0" >First Lastname</label>
<img src="www.facebook.com/+nextfriend> 
4

1 に答える 1

0

「choice_list」オプションを使用してカスタム選択オブジェクトの配列またはコレクションをフォームに渡そうとすると、まったく同じ例外メッセージが表示されました。

私はこのように解決しました(簡略化された例):

コントローラーコード:

use Symfony\Component\Form\Extension\Core\ChoiceList\SimpleChoiceList;


class UsedCarsController extends Controller {

..... action code:

$usedCars = $carRepository->findAllUsed();

$choiceList = new SimpleChoiceList($usedCars);

$form = $this->createForm(new UsedCarsType($choiceList),null, array('label' => 'Used cars form'));

... now render view, etc.

中古車タイプ:

class UsedCarsType extends AbstractType
{
    private $choicesList;

public function __construct($choicesList)
{
    $this->choicesList = $choicesList;
}

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('usedCars', 'choice',array('label'=>'Used cars',
                                     'required'=>true,
                                     'choice_list' => $this->choicesList,
                                     'empty_value' => '-- used car --'))
        ;
}

Choice_list オプションは、配列ではなく、SimpleChoiceList クラスのインスタンスでなければなりません。

少し遅れましたが、これがお役に立てば幸いです。

ところで:私はSymfony 2.3を使用しています

于 2013-07-02T08:59:54.807 に答える