Hola muy buenas,
Estaba trabajando con Symfony 2.4, SonataAdmin y FosUser. He actualizado a Symfony 2.5.5 y tambien sonata admin bundle a dev-master y sus otros correspondientes bundles.
El administrador trabaja perfectamente, pero me da fallo solo cuando edito un usuario ese administrador lo extiendo de Application/Sonata/UserBundle/Admin/UserAdmin.php
:
namespace Application\Sonata\UserBundle\Admin; use Sonata\AdminBundle\Admin\Admin; use Sonata\AdminBundle\Form\FormMapper; use Sonata\AdminBundle\Datagrid\DatagridMapper; use Sonata\AdminBundle\Datagrid\ListMapper; use Sonata\AdminBundle\Show\ShowMapper; use Sonata\UserBundle\Admin\Model\UserAdmin as SonataUserAdmin; use Doctrine\ORM\EntityRepository; use FOS\UserBundle\Model\UserManagerInterface; use Sonata\AdminBundle\Route\RouteCollection; use Symfony\Component\HttpFoundation\Request; class UserAdmin extends SonataUserAdmin { /** * {@inheritdoc} */ protected function configureFormFields(FormMapper $formMapper) { parent::configureFormFields($formMapper); $entidad=$this->getRoot()->getSubject(); $foto=$entidad->getRutaFoto(); $container=$this->getConfigurationPool()->getContainer(); $router=$container->get('router'); $perfil=$router->generate('perfil', array('user'=>$entidad->getUsernameCanonical(),'_format'=>'html'),true); $formMapper ->with('Profile') ->remove('groups') ->add('slug', null, array( 'label'=>'Url Usuario', 'help'=>'Url Perfil:<a target="_blank" href="'.$perfil.'">'.$perfil.'</a>', 'disabled'=>'disabled' ) ) ->add('foto', 'file', array( 'data_class' => 'Symfony\Component\HttpFoundation\File\File', 'property_path' => 'foto', 'label' => 'Foto', 'help'=>'<img src="/'.$foto.'" class="admin-preview" />', //'value'=>$foto, 'required' => false)) ->end() ; } protected function configureListFields(ListMapper $formMapper) { parent::configureListFields($formMapper); $formMapper //->addIdentifier('slug') ->remove('groups') ->remove('impersonating') ->remove('createdAt') ->add('createdAt', 'date', array( 'widget' => 'single_text', 'format' => 'd-M-Y H:i:s', 'model_timezone'=>'Europe/Madrid', 'view_timezone'=>'Europe/Madrid', 'locale' => 'es', )) ->add('slug',null,array('label'=>'Url Perfil')) ->add('_action', 'actions', array( 'label'=>'Acciones', 'actions' => array( 'show' => array(), 'edit' => array(), 'delete' => array(), ))) ; } public function prePersist($image) { $this->manageFileUpload($image); } public function preUpdate($image) { $this->manageFileUpload($image); } private function manageFileUpload($image) { if ($image->getFoto()) { $image->upload(); } } }
Antes, todo funcionaba bien, pero al editar el usuario me sale el siguiente error.
Notice: Undefined index: translation_domain in /Applications/AMPPS/www/curso-symfony/app/cache/dev/classes.php line 11989
¿Que es lo que pasa?
Gracias y un abrazo a todos.
Respuestas
OK, solucionado una parte ya puedo editar.
El problema era que ahora también puedes poner por tab los campos de administrador en SonataAdminBundle
. Y yo lo tenia de la siguiente manera:
->with('Profile') ->remove('groups') ->add('slug', null, array( 'label' => 'Url Usuario', 'help' => 'Url Perfil:<a target="_blank" href="'.$perfil.'">'.$perfil.'</a>', 'disabled' => 'disabled' ))
Y realmente era:
$formMapper // ->removeGroup('Groups') ->Tab('Gestion') ->with('Url y Foto', array( 'class' => 'col-md-12', 'description' => 'url y foto del usuario', )) // ... ->add('slug', null, array( 'label' => 'Url Usuario', 'help' => 'Url Perfil:<a target="_blank" href="'.$perfil.'">'.$perfil.'</a>', 'disabled' => 'disabled' ))
Ahora funciona todo, menos que no me deja eliminar el bloque Groups
de Usuarios que sale en la pestaña Security
.
Hay abierto un issue en Github
sonata-project/SonataAdminBundle/issues/2294
La verdad no se cómo eliminarlo.
Un saludo.
@jcarlosweb
No estoy muy seguro pero hace poco tuve un problema similar y resultó ser la caché. Lo solucioné borrando todo el contenido de la carpeta caché, y si estas en linux luego darles permisos 777 para reescribirlo. Capaz no ayude, pero, de seguro tampoco empeoro.
Un saludo!
@ponceelrelajado
Gracias por la ayuda @ponceelrelajado. Pero he probado y no es eso. En fin lo dejaré en stand by, y ya veremos si sale algo en claro.
@jcarlosweb