Sonata Adminでは、sonata_type_collectionのアップロードとプレビューの画像ファイルを使用します。私の管理/ ItemAdmin.phpでSonataAdminBundle with sonata_type_collection and upload image
:私の管理/ ItemPictureAdmin.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()
;
}
:
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つの2貴様とデータベースに撮影した画像ファイルを画像を持っていますが、リストには、それだけで最初に表示されます。
問題2:画像を更新できません...レコードを削除して、新しいファイルを再度アップロードする必要があります。
問題2: 'ItemPictureAdmin'に' preUpdate'メソッドを作成する必要がありますか?以下はその例です:[Symfony2、Sonata管理バンドルとファイルアップロード](http://blog.code4hire.com/2011/08/symfony2-sonata-admin-bundle-and-file-uploads/) – AndreaS
最初の号組み込み管理者の '$ this-> getSubject()'は常にその関係から最初のオブジェクトを取得するという、まだ修正されていないソナタのバグです。これには一時的な解決策があります。これを見てください: http://stackoverflow.com/questions/18106502/how-to-get-child-object-in-embedded-admin-class-in-sonata-admin/22815329#22815329 – hombee