ZF2 Doctrine2 - Undefined index: clientId

I have implemented two entities with annotations:

/**
 * @Entity @Table(name="clients")
 **/
class Client
{
    /** @Id @Column(type="integer") @GeneratedValue **/
    protected $id;

    /** @Column(type="string") **/
    protected $name;

    /** @Column(type="string") **/
    protected $vatNumber;

    /**
     * @OneToMany(targetEntity="Order",mappedBy="clientId", cascade={"persist","remove"})
     * @var Order[]
     **/
    protected $orders;
    ...
}

/**
 * @Entity @Table(name="orders")
 **/
class Order
{
    /** @Id @Column(type="integer") @GeneratedValue **/
    protected $id;

    /**
     * @Column(type="integer")
     * @JoinColumn(name="clientId",referencedColumnName="id")
     */
    protected $clientId;
    ...
}

When I execute the following:

public function deleteClient($clientId) {
    if (is_int($clientId)) {
        $retr = $this->getClient($clientId);
        if ( $retr ) {
            $orders = $retr->getOrders(); // <- It fails here
            $this->db->getEntityManager()->detach($retr);
            foreach ($orders as $order) {
                $this->deleteOrder($order->getId());
            }
            $q1 = $this->db->getEntityManager()->createQuery(
                'delete from Main\Model\Client u WHERE u.id = '.$clientId);
            $q1->execute();
        }
    }
}

I get the following error message:

Notice: Undefined index: clientId in
...\vendor\doctrine\orm\lib\Doctrine\ORM\Persisters\BasicEntityPersister.php    
on line 1758

Why?

Upvotes: 0

Views: 104

Answers (1)

iisisrael
iisisrael

Reputation: 603

Your annotations should look like this:

/**
 * @Entity @Table(name="clients")
 **/
class Client
{
    ...
    /**
     * @OneToMany(targetEntity="Order", mappedBy="client", cascade={"persist","remove"})
     **/
    protected $orders;
    ...
}

/**
 * @Entity @Table(name="orders")
 **/
class Order
{
    ...
    /**
     * @ManyToOne(targetEntity="Client", inversedBy="orders")
     */
    protected $client;
    ...
}

Upvotes: 1

Related Questions