мы работаем над проектом с symfony 4.4 и сонатой. мы уже реализовали предварительный просмотр изображений для продуктов, который работает просто отлично. Вопрос в том, как реализовать то же поведение для CollectionType. со следующей реализацией изображение для каждой строки Коллекции одинаково.
final class DownloadAdmin extends AbstractAdmin
{
protected function configureFormFields(FormMapper $formMapper)
{
$download = $this->getSubject();
$fileFieldOptions = ['required' => false];
if ($download && ($webPath = $download->getWebPath())) {
$fileFieldOptions['help'] = '<img src="'.$webPath . $download->getFilename().'" class="admin-preview" style="width:160px;"/>';
}
$formMapper->add('title', TextType::class);
$formMapper->add('position', IntegerType::class);
$formMapper->add('azure_id', TextType::class);
$formMapper->add('file', FileType::class, $fileFieldOptions);
}
, поэтому title, position и azure_id содержат значения из каждой строки, но
$this->getSubject()
запускается только один раз для коллекции, а не для каждой записи (по крайней мере, это мое предположение), что приводит к тому, что в каждой строке содержится одно и то же изображение.
вот категория admin, в которой мы используем CollectionType для загрузок:
final class CategoryAdmin extends AbstractTreeAdmin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper->add('title', TextType::class);
$formMapper->add('product', EntityType::class, [
'class' => Product::class,
'choice_label' => 'title',
]);
$formMapper
->add('downloads', CollectionType::class, [
'by_reference' => false,
], [
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'position',
'order' => 'ASC'
]);
}
каждая строка должна содержать отдельное изображение этой загрузки.
помощь очень ценится