フォームの作成に使用するコードは次のとおりです。
$form = $this->createFormBuilder($city)
->add('name', 'text')
->add('images', 'collection', array('type' => new ImageType())
->getForm();
都市のプロパティは、エンティティimages
のコレクションです。Image
ここでの定義はImageType
class ImageType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('path', new ImageFieldType());
}
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array('data_class' => 'My\Bundle\Entity\Image',));
}
public function getName() {
return 'image';
}
}
カスタムフィールドタイプのコードは次のImageFieldType
とおりです。
class ImageFieldType extends AbstractType {
public function getDefaultOptions(array $options) {
return array('path' => null);
}
public function getParent() {
return 'field';
}
public function getName() {
return 'imageField';
}
}
をレンダリングするImageFieldType
には、次のブロックを使用します。
{% block imageField_widget %}
{% if form.vars.value is not null %}
<a href="{{ path('_cityManage') }}/CityID/ImageID">
<img class="image_type" src="{{ asset('uploads/documents/' ~ form.vars.value) }}" />
</a>
{% endif %}
{% endblock %}
この小枝ブロックcity.id
で電流を取得するにはどうすればよいですか? image.id
で試してみまし{{ id }}
たが、このプリントはform_image_0_path
.
私の目標は、ページへのリンクを持つことですpath('_cityManage')/city.id/image.id