Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Notice: Undefined index: translation_domain

17 de octubre de 2014

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

#1

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

17 octubre 2014, 21:59
#2

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

17 octubre 2014, 22:15
#3

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

25 octubre 2014, 12:04