Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2013, 08:47
jakama
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 8 meses
Puntos: 0
Relaciones ManyToOne Doctrine

Hola,

Acabo de aterrizar en Symphony y estoy siguiendo un libro "DESARROLLO WEB ÁGIL CON SYMFONY2" y traduciendo lo que voy aprendiendo a la aplicación que quiero desarrollar.

En el libro se establecen relaciones que a mí no me funcionan... Estoy intentando entender cómo funciona esto, pero no consigo que funcione.

Cuando intento crear el esquema de la base de datos:
Código:
 php app/console doctrine:schema:create
me da error en una relación:
Código:
[Doctrine\ORM\ORMException]
Column name `id` referenced for relation from Vizeversa\IdeasBundle\Entity\
AnalisisMorfologico towards Vizeversa\RetosBundle\Entity\Retos does not exist.
La estructura de las entidades que intervienen es esta (No sé por qué no me salen las barras en las líneas namespace Vizeversa\RetosBundle\Entity; pero están...):


Vizeversa\RetosBundle\Entity
Código PHP:
<?php
namespace VizeversaRetosBundleEntity
;

use 
DoctrineORMMapping as ORM;

/**
 * Retos
 *
 * @ORM\Table(name="retos")
 * @ORM\Entity
 */
class Retos
{
    
/**
     * @var integer
     *
     * @ORM\Column(name="id_reto", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    
private $idReto;

    
/**
     * @ORM\ManyToOne(targetEntity="Vizeversa\UsuariosBundle\Entity\Usuarios")
     */
    
private $usuario;

    
/**
     * @var string
     *
     * @ORM\Column(name="nombre", type="string", length=255)
     */
    
private $nombre;

   {...}

Vizeversa\UsuariosBundle\Entity
Código PHP:
<?php

namespace VizeversaUsuariosBundleEntity
;

use 
DoctrineORMMapping as ORM;

/**
 * Usuarios
 *
 * @ORM\Table(name="usuarios")
 * @ORM\Entity
 */
class Usuarios
{
    
/**
     * @var integer
     *
     * @ORM\Column(name="id_usuario", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue
     */
    
private $idUsuario;

    
/**
     * @var string
     *
     * @ORM\Column(name="usuario", type="string", length=32)
     */
    
private $usuario;

    
/**
     * @var string
     *
     * @ORM\Column(name="password", type="string", length=32)
     */
    
private $password;

    
/**
     * @var string
     *
     * @ORM\Column(name="nombre", type="string", length=255)
     */
    
private $nombre;
    

    {...}
Vizeversa\IdeasBundle\Entity
Código PHP:
<?php

namespace VizeversaIdeasBundleEntity
;

use 
DoctrineORMMapping as ORM;

/**
 * AnalisisMorfologico
 *
 * @ORM\Table(name="analisis_morfologico")
 * @ORM\Entity
 */
class AnalisisMorfologico
{

    
/**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="Vizeversa\RetosBundle\Entity\Retos")
     */
    
private $reto;

    
/**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="Vizeversa\UsuariosBundle\Entity\Usuarios")
     */
    
private $usuario;

    
/**
     * @var string
     *
     * @ORM\Column(name="matriz", type="text")
     */
    
private $matriz;

{...}
¿Alguien sabe qué estoy haciendo mal?

Gracias!
Javi.
__________________
Tatuajes