私はSymfony2プロジェクトに2つのエンティティ "User"と "Team"を持っています。 ユーザーは多数のチームを持つことができ、チームは多くのユーザーを持つことができます。多対多の関係で一度にレコードを1つ追加する
チームにプレーヤーを追加する方法は、ユーザーが多数のユーザーを選択して[保存]をクリックしてデータベースに挿入できるselectbox(データベース内のすべてのユーザーを含む)を経由します。
私は
(このボックスは非常に長くなるだろう場合は特に)、利用可能なすべてのユーザーを見ることができるようになるにはログイン中のユーザーを好きではないので、2つのテキストボックスの代わりに、選択ボックスを持っていると思いますこれどうやってするの? 2つのテキストボックス(jqueryオートコンプリートを追加します)と保存ボタンを使用して、2人のユーザーをチームに追加します。
Thx。
編集:
<?php
namespace Tennisconnect\DashboardBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class TeamType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('player_one', 'text', array('property_path' => false))
->add('player_two', 'text', array('property_path' => false))
;
}
public function getName()
{
return 'team';
}
public function getDefaultOptions(array $options)
{
return array('data_class' => 'Tennisconnect\DashboardBundle\Entity\Team');
}
}
ChallengeType:
<?php
namespace Tennisconnect\DashboardBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class ChallengeType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('teams', 'collection', array(
'type' => new TeamType(),
'allow_add' => true
))
->add('place')
->add('date');
}
public function getName()
{
return 'challenge';
}
public function getDefaultOptions(array $options)
{
return array('data_class' => 'Tennisconnect\DashboardBundle\Entity\Challenge');
}
}
THX :)これは私が探していたものです。しかし、チームフォームが別のフォームに埋め込まれていると、コントローラーのテキストフィールドからデータを取り出す方法はありますか? – mattyh88
latetesを参照してください:) – hacksteak25
私は今これを持っています:$ username = $ form-> get( 'teams') - > get( 'player_one') - > getData(); 'outer_type'の代わりに何を置くべきですか?私はチャレンジエンティティのプロパティを考えていますか?それともTeamTypeですか?両方のオプションが私にエラーを与えています。 – mattyh88