Symfony 2.0.14 を使用しており、フォーム テンプレートにデフォルト値を表示したいと考えています。
FormType はエンティティにバインドされています。追加のフィールドを追加したい場合、オプション property_path = false を使用するとエンティティ以外のフィールドを追加できることを知っていますよね?
逆の場合、フォームフィールドなしでエンティティフィールドを設定したい。OK、「createForm」にデフォルトのエンティティを与えるだけです。
ただし、テンプレートフォームでどのようにレンダリングできますか?
コントローラーコード:
public function newAction(Request $request)
{
$game = new Game();
$local = new Role();
$visitor = new Role();
$local->setType('LOCAL');
$visitor->setType('VISITOR');
$game->addRole($local);
$game->addRole($visitor);
$form = $this->createForm(new GameType(), $game);
ゲームタイプコード:
public function buildForm(FormBuilder $builder, array $options){
$builder->add('teams', 'collection', array( 'type' => new RoleType()));
}
RoleType コード:
public function buildForm(FormBuilder $builder, array $options){
$builder->add('type', 'text'); // <= I would like read only for end-User
$builder->add('score', 'integer');
フォーム テンプレート :
{% for role in form.teams %}
<li>
<div class="role-team">
{{ role.type }} {# WRONG way, how to do ? #}
{{ form_row(role.score) }}
</div>
</li>
{% endfor %}