Doctrine Criteria查询包含ManyToOne实体字段上的表达式

时间:2015-08-27 15:51:29

标签: doctrine-orm doctrine criteria

考虑两个实体(具有ManyToOne关系),是否可以做这样的事情?

ENTITY:CLIENTE

/**
 * @ORM\Table(name="cliente")
 * @ORM\Entity
 */
class Cliente {
    /**
     * @ORM\Column(name="id_cliente", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @ORM\Column(type="string", length=50)
     */
    private $nome;
    // getters, setters, etc...
}

ENTITY:PEDIDO

/**
 * @ORM\Table(name="pedido")
 * @ORM\Entity
 */
class Pedido {
    /**
     * @ORM\Column(name="id_pedido", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @ORM\ManyToOne(targetEntity="Cliente")
     * @ORM\JoinColumn(name="id_cliente", referencedColumnName="id_cliente")
     */
    private $cliente;
    // getters, setters, etc...
}

示例查询:

$criteria = Criteria::create()->where(Criteria::expr()->contains('cliente.nome', 'Felippe'));
$pedidos = $this->entityManager->getRepository('Admin\Models\Pedido')->matching($criteria);

错误消息:

  

无法识别的字段:cliente.nome

我写了一个实用程序类来处理jQuery Datatables搜索......我试图在Generic DAO上创建一个函数来处理它...

任何人都可以帮助我吗?

谢谢!

0 个答案:

没有答案