Php Symfony2.6&;奏鸣曲媒体包&;SonataUserBundle:如何在编辑表单中获得图像预览
我正在上传一个图像(Sonata Media Bundle的媒体实体)并将其映射到一个用户(Sonata user Bundle的供应商实体)。上传图像,创建媒体表中的条目,将媒体条目的键添加到用户表中。未触发任何错误。但当我打开表单编辑用户时,在文件输入按钮附近看不到图像预览和文件名。就好像表单无法识别关联文件用户一样。这是我的密码: /app/config/config.yml:Php Symfony2.6&;奏鸣曲媒体包&;SonataUserBundle:如何在编辑表单中获得图像预览,php,symfony,sonata-user-bundle,sonata-media-bundle,Php,Symfony,Sonata User Bundle,Sonata Media Bundle,我正在上传一个图像(Sonata Media Bundle的媒体实体)并将其映射到一个用户(Sonata user Bundle的供应商实体)。上传图像,创建媒体表中的条目,将媒体条目的键添加到用户表中。未触发任何错误。但当我打开表单编辑用户时,在文件输入按钮附近看不到图像预览和文件名。就好像表单无法识别关联文件用户一样。这是我的密码: /app/config/config.yml: sonata_media: contexts: vendor: providers:
sonata_media:
contexts:
vendor:
providers:
- sonata.media.provider.image
- sonata.media.provider.file
formats:
small_square: { width: 104, height: 104, quality: 70}
small_portrait: { height: 119, quality: 90}
small: { width: 100 , quality: 70}
big: { width: 1000 , quality: 70}
/src/Application/Sonata/UserBundle/Admin/VendorAdmin.php:
protected function configureFormFields(FormMapper $formMapper)
{
...
$formMapper
->with('Gallery', array('class' => 'gallery'))
->add('userRatingFile', 'sonata_media_type', array('label' => 'Images', 'required' => false,
'cascade_validation' => true,
'context' => 'vendor',
'provider' => 'sonata.media.provider.image'
))
->end();
...
}
private function doPreLogic($vendor)
{
...
$vendor->setUserRatingFile($vendor->getUserRatingFile());
}
/src/Application/Sonata/UserBundle/Resources/config/doctor/UserType.Vendor.orm.xml:
<one-to-one field="userRatingFile" target-entity="Application\Sonata\MediaBundle\Entity\Media">
<cascade>
<cascade-all/>
</cascade>
<join-column name="userRatingFile_id" referenced-column-name="id" />
</one-to-one>
缺少什么?如何添加上载文件的预览?您必须配置细枝:
# Twig Configuration
twig:
debug: "%kernel.debug%"
strict_variables: "%kernel.debug%"
form:
resources:
#...
- SonataMediaBundle:Form:media_widgets.html.twig