在索纳塔管理,我想使用上传和预览图片文件在sonata_type_collection中。
在my Admin/ItemAdmin.php中:
class ItemAdmin extends Admin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('title')
->with('Photos')
->add('pictures', 'sonata_type_collection', array(
'label' => 'Pictures',
'by_reference' => false,
'required' => false,
), array(
'edit' => 'inline',
'inline' => 'table',
'sortable' => 'id'
))
->end()
;
}在my Admin/ItemPictureAdmin.php中:
class ItemPictureAdmin extends Admin {
protected function configureFormFields(FormMapper $formMapper) {
$obj = $this->getSubject();
$formBuilder = $formMapper->getFormBuilder();
if(is_object($obj) && $obj->getPicture())
{
$formMapper
->add('picturePreview', 'image_preview', array(
'required' => false,
'property_path' => false,
'upload_dir' => '/uploads/picture/',
'file_name' => $obj->getPicture()
));
}
$formMapper->add('pictureFile', 'file', array('label' => 'Pic'));
}类型"image_preview“是我用一个简单的模板树枝创建的新类型,用于显示图片。
预览:http://i.stack.imgur.com/AC0ih.png
问题1:我在数据库中记录了两张图片,其中有两个不同的图片文件,但在列表中,它只显示第一个。
问题2:无法更新图片...我必须删除记录并重新上传一个新文件。
发布于 2014-04-25 17:11:41
我自己也碰到了问题1。我尝试了我找到的所有可能的解决方案,但都不起作用。我尝试了一些我的解决方案,其中一个很好。
我做了什么:
此解决方案是对caponica的解决方案here的改编
发布于 2014-07-03 23:02:40
我也有同样的问题,我可以通过“自定义表单类型扩展”做到这一点,"http://symfony.com/doc/current/cookbook/form/create_form_type_extension.html“链接上提供了相关文档。
这是完美的解决方案..
https://stackoverflow.com/questions/13357482
复制相似问题