Ok so I got this answer by @Ocranimus however it does seem to generate the 
same error, so I'm thinking it's either something wrong with fixtures 
definition or there is something wrong with fixture generator itself


W dniu piątek, 20 maja 2016 00:07:42 UTC+2 użytkownik Adrian Dróżdż napisał:
>
> Hello,
>
> I am beginig to develop my first app i Symfony3 and Doctrine and I came up 
> against a problem I cannot solve.
>
> I am trying to join three entities with one-to-many/many-to-one 
> associations.
>
> The broblem is quite similar to this 
> https://groups.google.com/d/msg/doctrine-user/0dh8lgUudvc/-NB_cOXT9ggJ
>
> I understand the concpet and I believe I managed to create appropriate 
> entities but somehow when I try to load fixtures as an example data I get a 
> Doctrine Exception
>
> php app/console hautelook_alice:doctrine:fixtures:load 
>
>>   Found entity of type AppBundle\Entity\ItemOwner on association 
>>> AppBundle\Entity\ItemOwner#item, but expecting AppBundle\Entity\Item 
>>
>>  Is there anything wrong I am doing or is it just fixture loader can't 
> handle my fixtures
> AppBundle\Entity\Item:
>     item_{1..20}:
>         name (unique): 
> <randomElement(['KEFE','CEFE','KIDS','KDFJ','CDFJ'])><randomElement(['1-50','51-100','151-200','1-25','26-50','51-75','76-100','101-125','126-150'])>
>         itemOrder: <randomDigitNotNull()>
>         itemType:  @item_type*
>         status: 1
>         createdAt: <dateTimeBetween('-200 days', 'now')>
>         updatedAt: <dateTimeBetween($createdAt, 'now')>
>
> AppBundle\Entity\Owner:
>     owner_{1..10}:
>         name (unique): <name()>
>         status: 1
>         createdAt: <dateTimeBetween('-200 days', 'now')>
>         updatedAt: <dateTimeBetween($createdAt, 'now')>
>
> AppBundle\Entity\ItemOwner:
>     item_owner_{1..100}:
>         item: @item*
>         owner: @owner*
>         number: <numberBetween(1, 200)>
>         issued: <dateTimeBetween('-10 years', 'now')>
>         comment: <sentence(6, true)>
>         createdAt: <dateTimeBetween('-200 days', 'now')>
>         updatedAt: <dateTimeBetween($createdAt, 'now')>
>
> Thank you in advance for your time you took to help me
>
> Here are my 3 entites
> [ITEM]
> use Doctrine\ORM\Mapping as ORM;
> use Doctrine\Common\Collections\ArrayCollection;
>
> /**
>  * Item
>  *
>  * @ORM\Table(name="item")
>  * @ORM\Entity(repositoryClass="AppBundle\Repository\ItemRepository")
>  */
> class Item
> {
>     /**
>      * @var int
>      *
>      * @ORM\Column(name="id", type="integer")
>      * @ORM\Id
>      * @ORM\GeneratedValue(strategy="AUTO")
>      */
>     private $id;
>
>     /**
>      * @var string
>      *
>      * @ORM\Column(name="name", type="string", length=255, unique=true)
>      */
>     private $name;
>
>     /**
>      * @var int
>      *
>      * @ORM\Column(name="item_order", type="integer")
>      */
>     private $itemOrder;
>
>     /**
>      * @var ItemType;
>      *
>      * @ORM\ManyToOne(targetEntity="ItemType")
>      * @ORM\JoinColumn(name="item_type", referencedColumnName="id")
>      */
>     private $itemType;
>
>     /**
>      * @var int
>      *
>      * @ORM\Column(name="status", type="integer")
>      */
>     private $status;
>
>     /**
>      * @var \DateTime
>      *
>      * @ORM\Column(name="created_at", type="datetime")
>      */
>     private $createdAt;
>
>     /**
>      * @var \DateTime
>      *
>      * @ORM\Column(name="updated_at", type="datetime")
>      */
>     private $updatedAt;
>
>     /**
>      * @var ArrayCollection;
>      *
>      * @ORM\OneToMany(targetEntity="ItemOwner", mappedBy="item")
>      */
>     private $itemOwners;
>
>     public function __construct() {
>         $this->itemOwners = new ArrayCollection();
>     }
>     ...SETTERS/GETTERS
>
> [OWNER]
> use Doctrine\ORM\Mapping as ORM;
> use Doctrine\Common\Collections\ArrayCollection;
>
> /**
>  * Owner
>  *
>  * @ORM\Table(name="owner")
>  * @ORM\Entity(repositoryClass="AppBundle\Repository\OwnerRepository")
>  */
> class Owner
> {
>     /**
>      * @var int
>      *
>      * @ORM\Column(name="id", type="integer")
>      * @ORM\Id
>      * @ORM\GeneratedValue(strategy="AUTO")
>      */
>     private $id;
>
>     /**
>      * @var string
>      *
>      * @ORM\Column(name="name", type="string", length=255, unique=true)
>      */
>     private $name;
>
>     /**
>      * @var int
>      *
>      * @ORM\Column(name="status", type="integer")
>      */
>     private $status;
>
>     /**
>      * @var \DateTime
>      *
>      * @ORM\Column(name="created_at", type="datetime")
>      */
>     private $createdAt;
>
>     /**
>      * @var \DateTime
>      *
>      * @ORM\Column(name="updated_at", type="datetime")
>      */
>     private $updatedAt;
>
>     /**
>      * @var ArrayCollection;
>      *
>      * @ORM\OneToMany(targetEntity="ItemOwner", mappedBy="owner")
>      */
>     private $itemOwners;
>
>     public function __construct() {
>         $this->itemOwners = new ArrayCollection();
>     }
> ...SETTERS/GETTERS
>
> [ItemOwner]
>
> use Doctrine\ORM\Mapping as ORM;
>
> /**
>  * ItemOwner
>  *
>  * @ORM\Table(name="item_to_owner",uniqueConstraints={
>  *     @ORM\UniqueConstraint(name="owning_idx", columns={"owner_id", 
> "item_id","number"})})
>  * @ORM\Entity(repositoryClass="AppBundle\Repository\ItemOwnerRepository")
>  */
> class ItemOwner {
>     /**
>      * @var int
>      *
>      * @ORM\Column(name="id", type="integer")
>      * @ORM\Id
>      * @ORM\GeneratedValue(strategy="AUTO")
>      */
>     private $id;
>
>     /**
>      * @ORM\ManyToOne(targetEntity="Item", inversedBy="itemOwners")
>      * @ORM\JoinColumn(name="item_id", referencedColumnName="id")
>      */
>     private $item;
>
>     /**
>      * @ORM\ManyToOne(targetEntity="Owner", inversedBy="itemOwners")
>      * @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
>      */
>     private $owner;
>
>
>     /** @ORM\Column(type="integer") */
>     private $number;
>
>     /** @ORM\Column(name="issued", type="string", length=255) */
>     private $issued;
>
>     /** @ORM\Column(name="comment", type="text") */
>     private $comment;
>
>     /**
>      * @var \DateTime
>      *
>      * @ORM\Column(name="created_at", type="datetime")
>      */
>     private $createdAt;
>
>     /**
>      * @var \DateTime
>      *
>      * @ORM\Column(name="updated_at", type="datetime")
>      */
>     private $updatedAt;
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"doctrine-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to