Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/03/2016, 02:58
polaries
 
Fecha de Ingreso: noviembre-2015
Mensajes: 20
Antigüedad: 9 años
Puntos: 1
Como hacer un ViewModel

Como puedo hacer en symfony lo que en otros lenguajes se llaman ViewModels?
Me explico :

tengo una entidad usuario que tiene un monton de campos,ademas de esos también tengo un campo que almacena la ruta de una imagen ligada a ese usuario,pero no voy a guardar esa ruta en la base de datos porque se genera sin problemas desde el codigo,ya que es la misma siempre y solo cambia una carpeta que coincide con el nombre del usuario.

para ello tengo la entidad de usuario,y una clase que hereda de esa entidad con ese campo añadido,campo "logo".

como hago para que cuando instancie una clase de la entidad hija,me cargue la entidad padre con todos sus datos?.

Ahora lo tengo asi,pero el problema es que se crea una clase dentro de la hija que contiene a la padre y yo solo quiero una clase hija con todos los datos de la padre en ella y no que tenga a su padre contenida.No se si se me entiende,jjjjjjj.

Código PHP:
Ver original
  1. class UsuarioViewModel extends Usuario {
  2.  
  3.     private $logo;
  4.     public $UserOriginal;
  5.  
  6.     public function __construct($userOriginal)
  7.     //public function __construct()
  8.     {
  9.         parent::__construct();
  10.         $this->UserOriginal = $userOriginal;
  11.     }
  12.  
  13.     public function setLogo($logo) {
  14.         $this->logo = $logo;
  15.  
  16.         return $this;
  17.     }
  18.  
  19.     public function getLogo() {
  20.         return $this->logo;
  21.     }
  22.  
  23. }

Código PHP:
Ver original
  1. class Usuario extends BaseUser {
  2.  
  3.     //para las relaciones muchos a muchos
  4.     public function __construct()
  5.     {
  6.         parent::__construct();
  7.        
  8.         $this->sectoresEmpresa = new ArrayCollection();
  9.         $this->tiposCli = new ArrayCollection();
  10.     }
  11.  
  12.     /**
  13.      * @ORM\Column(type="integer")
  14.      * @ORM\Id
  15.      * @ORM\GeneratedValue(strategy="AUTO")
  16.      **/
  17.     protected $id;
  18.    
  19.     /**
  20.      * @ORM\Column(type="boolean", nullable=false)
  21.      */
  22.     protected $esEmpresa = false;
  23.  
  24. ...
  25. ...
  26. ...