Khi sử dụng bộ sưu tập hình thức, ID yếu tố hình thức sẽ được tự động xây dựng bởi SF2Symfony2: tùy chỉnh ID yếu tố hình thức trong các bộ sưu tập hình thức
Form/WeekType.php
class WeekType extends AbstractType
{
public function getName()
{
return "MyBundle";
}
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('fixtures', 'collection', array(
'type' => new FixtureType(),
));
}
}
Form/FixtureType.php
class FixtureType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('score1', 'text');
}
}
Mã này tạo ra các phần tử biểu mẫu sau:
<select id="MyBundle_fixtures_0_score1" />
<select id="MyBundle_fixtures_1_score1" />
0, 1 ... chỉ là chỉ mục lặp hiện tại.
Tôi muốn thay đổi id của các thẻ đã chọn. Ví dụ, đặt giá trị khóa chính (từ Model) thay vì chỉ số lặp.
<select id="MyBundle_fixtures_151_score1" />
<select id="MyBundle_fixtures_152_score1" />
hoặc thậm chí:
<select id="MyBundle_fixtures_0_score1_151" />
<select id="MyBundle_fixtures_1_score1_152" />
151, 152 là giá trị khóa chính từ Lịch thi đấu bảng (từ cơ sở dữ liệu).
Đề xuất cuối cùng của bạn vẫn đang được thảo luận (https://github.com/symfony/symfony/pull/1461). Về đề xuất đầu tiên của bạn, tôi không hiểu. Làm cách nào để sửa đổi các khóa bộ sưu tập được chuyển đến biểu mẫu? – ocornu