0

我在 Smyony2 上尝试使用 d:f:l 时遇到了这个错误,我在 Servicio 和 Usuario 上遇到了同样的错误,所以我发布了一个示例,如果你帮助我,另一个也将得到修复。

  [ErrorException]
  Catchable Fatal Error: Argument 1 passed to PGE\BitacoraBundle\Entity\Tarea::setServicio() must be an instance of PGE\BitacoraBundle\Entity\Servicio, integer given, called in D:\Zend\Apache2\htdocs\PGE\src\PGE\BitacoraBu
  ndle\DataFixtures\ORM\Tareas.php on line 20 and defined in D:\Zend\Apache2\htdocs\PGE\src\PGE\BitacoraBundle\Entity\Tarea.php line 281

这是代码:

Tareas.php

<?php
namespace PGE\BitacoraBundle\DataFixtures\ORM;

use Doctrine\Common\DataFixtures\AbstractFixture;
use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
use Doctrine\Common\Persistence\ObjectManager;
use PGE\BitacoraBundle\Entity\Tarea;

class Tareas extends AbstractFixture implements OrderedFixtureInterface
{
    public function getOrder()
    {
        return 3;
    }
    public function load(ObjectManager $manager)
    {
        for ($i = 1; $i < 5; $i++) {
            $entidad = new Tarea();

            $entidad->setServicio($i);

            $entidad->setFechaInicio(new \DateTime());
            $entidad->setFechaFinal(new \DateTime());
            $entidad->setDescripcion('Descripcion aqui');
            $entidad->setEstado('Pendiente');
            $entidad->setPrioridad('P1');
            $entidad->setResumen('Hola soy un resumen');
            $entidad->setSolicitante('x068753');
            $entidad->setUsuario($i);
        }
    $manager->flush();
    }
}

Usuario.php

<?php
namespace PGE\BitacoraBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @ORM\Table(name="bitacora_usuario")
*/
class Usuario
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
    */
    private $id;

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

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

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

    public function __toString()
    {
        return $this->getNombre().' '.$this->getApellidos();
    }

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

    /**
     * Set nombre
     *
     * @param string $nombre
     * @return Usuario
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;

        return $this;
    }

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

    /**
     * Set apellidos
     *
     * @param string $apellidos
     * @return Usuario
     */
    public function setApellidos($apellidos)
    {
        $this->apellidos = $apellidos;

        return $this;
    }

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

    /**
     * Set prbes
     *
     * @param string $prbes
     * @return Usuario
     */
    public function setPrbes($prbes)
    {
        $this->prbes = $prbes;

        return $this;
    }

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

编辑:我正在使用 Symfony 2.1.X

4

1 回答 1

0

捆绑包没有问题,相反,它非常清楚地表明传递给的第一个参数$entidad->setServicio($i);必须是一个实例PGE\BitacoraBundle\Entity\Servicio而不是整数。

所以你没有得到一个 Serivcio 的实例并将它传递给 setter。如果您在另一个夹具中创建服务,您需要查看捆绑文档的夹具部分之间的共享对象。

于 2012-10-19T15:06:42.600 回答