Hola amigos soy nuevo en Doctrine y estoy realizando una aplicación y no puedo recuperar un objeto que tiene relacion con varios otros, la relacion seria algo asi.
La Clase Cliente extiende la Clase User, les comento las relaciones
Un cliente tiente una lista y una lista tiene mucho productos, vista del otro lado un producto pertenece a varias listas y una lista podira perteneces a muchos clientes
Cliente >-- Lista >--< Producto
Estoy utilizando Codeigniter entonces mis clases estan dentro de la carpeta models y dentro de la misma tento la carpeta repositorioes.
Carpetas
models (Carpeta)
----repositories (Carpeta que contiene los archivos que se indican en la doc de cada clase)
----User.php
----Cliente.php
----Lista.php
----Producto.php
La base de datos la cree con el comando de Doctrine por lo tanto me lo toma bien a las relaciones, tambien he podido realizar inserciones pero al momento de realizar la consulta $cliente->getLista() ya me produce error.
lo que me retorna al queres llamar al metodo:
A PHP Error was encountered
Severity: Warning
Message: file_put_contents(application/models/Proxies/modelsListaProxy.php): failed to open stream: No such file or directory
Filename: Proxy/ProxyFactory.php
Line Number: 155
A PHP Error was encountered
-----------------------------------------------------------------------------------------------
Severity: Warning
Message: require(application/models/Proxies/modelsListaProxy.php): failed to open stream: No such file or directory
Filename: Proxy/ProxyFactory.php
Line Number: 85
--------------------------------------------------------------------------------------------
Les muestro lo interezante de mis clases que son las relaciones
ACALRACION ME QUITO ALGUNAS BARRAS DE LAS CLASES en realidad es: use \Doctrine\Common\Collections\ArrayCollection;
Clase Cliente
Código PHP:
namespace models;
use DoctrineCommonCollectionsArrayCollection;
/**
* @Entity
* @entity(repositoryClass="models\repositories\ClienteRepository")
*/
class Cliente extends User
{
/**
* @ManyToOne(targetEntity="Lista")
* @JoinColumn(name="lista_id", referencedColumnName="id" )
*/
protected $mi_lista;
public function getLista() {
return $this->mi_lista;
}
public function setLista($lista) {
$this->mi_lista = $lista;
}
}
Clase Lista
Código PHP:
namespace models;
use DoctrineCommonCollectionsArrayCollection;
/**
* @Entity
* @Table(name="listas")
* @entity(repositoryClass="models\repositories\ListaRepository")
*/
class Lista {
/**
* @OneToMany(targetEntity="Cliente", mappedBy="mi_lista")
*/
protected $clientes;
/**
* @ManyToMany(targetEntity="Producto", inversedBy="listas")
* @JoinTable(name="listas_productos",
* joinColumns={@JoinColumn(name="lista_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="producto_id", referencedColumnName="id")}
* )
*/
protected $productos;
public function getClientes() {
return $this->clientes;
}
public function setClientes($clientes) {
$this->clientes = $clientes;
}
public function getProductos() {
return $this->productos;
}
public function setProductos($productos) {
$this->productos = $productos;
}
}
Clase Producto
Código PHP:
namespace models;
use DoctrineCommonCollectionsArrayCollection;
/**
* @Entity
* @Table(name="productos")
* @entity(repositoryClass="models\repositories\ProductoRepository")
*/
class Producto {
/**
* @ManyToMany(targetEntity="Lista", mappedBy="productos")
*/
protected $listas;
public function getListas() {
return $this->listas;
}
public function setListas($listas) {
$this->listas = $listas;
}
}
Espero que se entienda el problema cualquier ayuda sera muy bienvenida.
Saludos y gracias por leer el post.
Nico.