Foros del Web » Programando para Internet » PHP » Symfony »

Api en Symfony 2

Estas en el tema de Api en Symfony 2 en el foro de Symfony en Foros del Web. hola a todos, estaba haciendo una pequenha api en mi proyecto en symfony 2, solo un proveedor de datos en json, y cuando intento proveer ...
  #1 (permalink)  
Antiguo 16/05/2015, 11:51
Avatar de cbretana  
Fecha de Ingreso: junio-2013
Ubicación: Pinar del Rio
Mensajes: 55
Antigüedad: 11 años, 5 meses
Puntos: 0
Api en Symfony 2

hola a todos, estaba haciendo una pequenha api en mi proyecto en symfony 2, solo un proveedor de datos en json, y cuando intento proveer una serie de datos, me da el siguiente error, me parece que tiene que ver con las relaciones de la base de datos, pero bueno, he intentado e todo, y nada me ha funcionado, si alguien sabe, le pido su ayuda, saludos:

Código:
Notice: Undefined index: usuario in /media/cesar/Data1/Study/Projects/Hostipy 2/vendor/doctrine/orm/lib/Doctrine/ORM/Persisters/BasicEntityPersister.php line 1753
__________________
.::Una imagen vale mas que mil palabras::.
  #2 (permalink)  
Antiguo 17/05/2015, 11:47
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Api en Symfony 2

Utiliza https://github.com/schmittjoh/JMSSer.../doc/index.rst puede serealizar o deserializar estructuras complejas.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 18/05/2015, 07:10
Avatar de cbretana  
Fecha de Ingreso: junio-2013
Ubicación: Pinar del Rio
Mensajes: 55
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Api en Symfony 2

Eso es lo que estoy usando para retornar json, pero me da el error que postee, sera algun problema en la relacion en la db?
__________________
.::Una imagen vale mas que mil palabras::.
  #4 (permalink)  
Antiguo 18/05/2015, 07:14
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Api en Symfony 2

Si es error en la relación, te debe de aparecer en el profile. Si quieres publica las entidades.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 18/05/2015, 09:55
Avatar de cbretana  
Fecha de Ingreso: junio-2013
Ubicación: Pinar del Rio
Mensajes: 55
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Api en Symfony 2

Mi usuario
Código PHP:
/**
 * Usuario
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Hostipy\AppBundle\Entity\UsuarioRepository")
 */
class Usuario implements AdvancedUserInterfaceSerializable
{
    
/**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    
private $id;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
/**
     * @ORM\ManyToOne(targetEntity="UserStatus")
     */
    
private $userStatus;

    
/**
     * @ORM\ManyToOne(targetEntity="Franquicia")
     */
    
private $franquicia;

    
/**
     * @ORM\OneToOne(targetEntity="Banco")
     */
    
private $cuenta;

    
/** @ORM\OneToMany(targetEntity="Cliente", mappedBy="usuario") */
    
private $cliente;

    
/** @ORM\OneToMany(targetEntity="Notificacion", mappedBy="usuario") */
    
private $notificacion;

    
/**
     * @ORM\ManyToMany(targetEntity="Role", inversedBy="users")
     * @ORM\JoinTable(name="usuario_roles",
     *    joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
     *    inverseJoinColumns={@ORM\JoinColumn(name="role_id", referencedColumnName="id")}
     * )
     */
    
private $roles;

    
/**
     * @ORM\Column(name="is_active", type="boolean")
    */
    
private $is_active;

    
/**
     * @ORM\OneToMany(targetEntity="Producto", mappedBy="Usuario")
    */
    
private $producto;

    public function 
__construct()
    {
        
$this->roles = new ArrayCollection();

        
$this->cliente = new ArrayCollection();
    }

    public function 
addRole(Role $role)
    {
        
$this->roles[] = $role;
        return 
$this;
    }

   

    public function 
isAccountNonExpired() {
        return 
true;
    }

    public function 
isAccountNonLocked() {
        return 
true;
    }

    public function 
isCredentialsNonExpired() {
        return 
true;
    }

    public function 
isEnabled() {
        return 
$this->is_active;
    }

    public function 
serialize() {
        return 
serialize(array($this->id,));
    }

    public function 
unserialize($serialized) {
        list(
$this->id) = unserialize($serialized);
    }

y mis ventas.

Código PHP:
/**
 * Venta
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Hostipy\AppBundle\Entity\VentaRepository")
 */
class Venta
{
    
/**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    
private $id;

    
/**
     * @ORM\ManyToOne(targetEntity="Usuario", inversedBy="usuario")
     */
    
private $usuario;

    
/**
     * @ORM\ManyToOne(targetEntity="Producto")
     */
    
private $producto;

    
/**
     * @var decimal
     *
     * @ORM\Column(name="comision", type="decimal")
     */
    
private $comision;

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

    
/**
     * @var date
     *
     * @ORM\Column(name="fecha", type="date")
     */
    
private $fecha;

    
/**
     * @ORM\Column(name="is_done", type="boolean")
     */
    
private $done;

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

    public function 
getTipo() {
        return 
$this->tipo;
    }

    public function 
setTipo($tipo) {
        
$this->tipo $tipo;

        return 
$this;
    }

    public function 
getDone() {
        return 
$this->done;
    }

    public function 
setDone($done) {
        
$this->done $done;
    }
    
/**
     * Get id
     *
     * @return integer 
     */
    
public function getId()
    {
        return 
$this->id;
    }

    public function 
setUsuario(Usuario $usuario)
    {
        
$this->usuario $usuario;

        return 
$this;
    }

    
/**
     * Get usuario
     *
     * @return string 
     */
    
public function getUsuario()
    {
        return 
$this->usuario;
    }


    public function 
setProducto(Producto $producto)
    {
        
$this->producto $producto;

        return 
$this;
    }


    public function 
getProducto()
    {
        return 
$this->producto;
    }

    
/**
     * Set comision
     *
     * @param string $comision
     * @return Venta
     */
    
public function setComision($comision)
    {
        
$this->comision $comision;

        return 
$this;
    }

    
/**
     * Get comision
     *
     * @return string 
     */
    
public function getComision()
    {
        return 
$this->comision;
    }

    
/**
     * Set estado
     *
     * @param string $estado
     * @return Venta
     */
    
public function setEstado($estado)
    {
        
$this->estado $estado;

        return 
$this;
    }

    
/**
     * Get estado
     *
     * @return string
     */
    
public function getEstado()
    {
        return 
$this->estado;
    }

    public function 
setFecha(DateTime $fecha)
    {
        
$this->fecha $fecha;

        return 
$this;
    }

    
/**
     * Get fecha
     *
     * @return string 
     */
    
public function getFecha()
    {
        return 
$this->fecha;
    }

estas dos entidades se relacionan 1..m, salu2.
__________________
.::Una imagen vale mas que mil palabras::.
  #6 (permalink)  
Antiguo 18/05/2015, 10:46
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: Api en Symfony 2

cbretana este mapeo en la entidad Venta no es correcto.
Código PHP:
Ver original
  1. /**
  2.      * @ORM\ManyToOne(targetEntity="Usuario", inversedBy="usuario")
  3.      */
  4.     private $usuario;
El InversedBy debe de apuntar a una propiedad en Usuario, en este caso la propiedad $usuario no existen en la Clase Usuario.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: api
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:35.