Foros del Web » Programando para Internet » PHP » Symfony »

Doctrine 2 Symfony 2 Translatable

Estas en el tema de Doctrine 2 Symfony 2 Translatable en el foro de Symfony en Foros del Web. Instalé el Pack Doctrine Extensions. Probé en columna subject la la traducción. Código PHP: namespace LmsPostBundleEntity ; use  DoctrineORMMapping  as  ORM ; use  SymfonyComponentValidatorConstraints  as  Assert ...
  #1 (permalink)  
Antiguo 22/09/2011, 18:44
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 1
Doctrine 2 Symfony 2 Translatable

Instalé el Pack Doctrine Extensions.

Probé en columna subject la la traducción.

Código PHP:

namespace LmsPostBundleEntity
;

use 
DoctrineORMMapping as ORM;
use 
SymfonyComponentValidatorConstraints as Assert;
use 
DoctrineCommonCollectionsArrayCollection;
use 
SymfonyComponentValidatorMappingClassMetadata;
use 
SymfonyComponentValidatorConstraintsNotBlank;
use 
GedmoTranslatableTranslatable;
use 
GedmoMappingAnnotation as Gedmo;

/**
 * Lms\PostBundle\Entity
 *
 * @ORM\Table(name="post")
 * @ORM\Entity(repositoryClass="Lms\PostBundle\Entity\PostRepository")
 */
class Post implements Translatable
{
    
/**
     *
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    
protected $id;
    
    
/**
     *
     * @ORM\Column(type="string")
     * @Gedmo\Translatable  
     */
    
protected $subject;
    
    
/**
     *
     * @ORM\ManyToOne(targetEntity="PostCategory", inversedBy="post", cascade={"remove"})
     */
    
protected $postcategory;
    
    
    
/**
     * @gedmo:Locale
     * Used locale to override Translation listener`s locale
     * this is not a mapped field of entity metadata, just a simple property
     */
    
private $locale;

    public function 
setTranslatableLocale($locale)
    {
        
$this->locale $locale;
    }
    

    
/**
     * Get id
     *
     * @return integer 
     */
    
public function getId()
    {
        return 
$this->id;
    }

    
/**
     * Set subject
     *
     * @param string $subject
     */
    
public function setSubject($subject)
    {
        
$this->subject $subject;
    }

    
/**
     * Get subject
     *
     * @return string 
     */
    
public function getSubject()
    {
        return 
$this->subject;
    }



    
/**
     * Set postcategory
     *
     * @param Lms\PostBundle\Entity\PostCategory $postcategory
     */
    
public function setPostcategory(LmsPostBundleEntityPostCategory $postcategory)
    {
        
$this->postcategory $postcategory;
    }

    
/**
     * Get postcategory
     *
     * @return Lms\PostBundle\Entity\PostCategory 
     */
    
public function getPostcategory()
    {
        return 
$this->postcategory;
    }
    
    


Pero me sale un alerta
Table 'BaseDeDatos.ext_translations' doesn't exist

Entonces cree esa tabla y las columnas que poco a poco me salía de alerta de errores, hasta que... inserto! claro por que ya había creado la tabla y las columnas

ejemplo:
Código PHP:
       $post = new Post();

        
$post->setSubject('Post Nuevo !');
        
$post->setPostcategory($em->getReference('PostBundle:PostCategory'4));
        
        
$em->persist($post);
        
$em->flush(); 
        
        echo 
$post->getId

Note que me se inserto en la tabla de traducciones con la localidad por defecto que le dí en el config en_es

Pero si quiero insertar otra localidad, ejemplo.

Código PHP:

       $post
->setTranslatableLocale('es_us'); 
Me sigue insertando el en_es...

Por lo que sé hay una manera en que el Translatable te cree la tabla automática por lo que leí...

Se que hay una mejor manera inclusive para crear una tabla diferente por cada entidad.... para tener un orden... alguien sabe algo al respecto, es que encuentro poca documentación de esta extensión...

estoy trabajando en Symfony2

Saludos.
  #2 (permalink)  
Antiguo 22/09/2011, 18:57
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Doctrine 2 Symfony 2 Translatable

La documentación que hay, es la del github del developer, has agregado el annotation driver que requiere el behavior y agregado el listener al EventManager ?, crear "a mano" según te van saltando los errores no es la forma correcta de hacerlo, primero sigue los pasos de la documentación y configura correctamente el behavior.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: doctrine, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:14.