Symfony - como hacer un ViewModel

 
Vista:

como hacer un ViewModel

Publicado por polaries (1 intervención) el 11/03/2016 11:33:53
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.

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


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


Si yo hago :

1
2
3
$usuario = new UsuarioViewModel($usuarioOriginal);
$usuario->setLogo($rutaLogo);
$esEmpresa = $usuario->getEsEmpresa();

este getEsEmpresa(),o cualquier get que haga,siempre devuelve vacio.

¿como hago para que al hacer el new,el $usuario tenga accesibles los datos de $usuarioOriginal?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder