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;
}
}
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;
}
}
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;
}
}
Saludos y gracias por leer el post.
Nico.