#symfony #sonata-admin #symfony-sonata
#symfony #sonata-администратор #symfony-sonata
Вопрос:
Я начал с SonataMediaBundle, и у меня возникли некоторые проблемы, когда я хочу загрузить изображение (к сожалению, документация не совсем понятна)
Я продолжил как :
Я хочу загрузить изображение в форме создания новостей, поэтому :
В новостном объекте :
/**
* @ORMManyToOne(targetEntity="ApplicationSonataMediaBundleEntityMedia", cascade={"all"})
* @ORMJoinColumn(nullable=false)
*/
protected $imageNews;
В NewsType я добавляю поле в buildForm :
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title')
->add('summary', 'text', array(
'required' => false
))
->add('body', 'textarea', array('attr' => array(
'class' => 'ckeditor',
)))
->add('imageNews', 'sonata_media_type', array(
'provider' => 'sonata.media.provider.image',
'context' => 'news'
));
// ->add('categories', 'taxonomy')
;
}
Мой файл config.yml
Doctrine :
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
# SonataMediaBundle
sonata_media:
default_context: default
db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr
contexts:
default: # the default context is mandatory
providers:
- sonata.media.provider.dailymotion
- sonata.media.provider.youtube
- sonata.media.provider.image
- sonata.media.provider.file
formats:
small: { width: 100 , quality: 70}
big: { width: 500 , quality: 70}
news:
providers:
- sonata.media.provider.youtube
- sonata.media.provider.image
formats:
small: { width: 150 , quality: 95}
big: { width: 500 , quality: 90}
cdn:
server:
path: /uploads/media # http://media.sonata-project.org/
filesystem:
local:
directory: %kernel.root_dir%/../web/uploads/media
create: false
providers:
image:
resizer: sonata.media.resizer.square
Мне кажется, я что-то пропустил, не могли бы вы сказать мне, чего не хватает, пожалуйста;
Мне удалось отобразить загруженное, но когда я проверяю форму, я вижу, что объект imageNews равен нулю (var_dump)
Спасибо!
Ответ №1:
Здесь та же проблема, проблема была решена с добавлением этого шаблона формы
twig:
debug: %kernel.debug%
strict_variables: %kernel.debug%
form:
resources:
# other files
- 'SonataMediaBundle:Form:media_widgets.html.twig'
http://sonata-project.org/bundles/media/2-2/doc/reference/form.html
в этом шаблоне должно быть что-то, что является ключом для make