Evgeniy Evgeniy - 1 year ago 162
SQL Question

Doctrine and LIKE query

I have entity for Doctrine:

* @Entity
* @Table(name="orders")
class Orders {
/** @Id @Column(name="OID",type="integer") @GeneratedValue */
private $id;
/** @Column(name="Product",type="string")*/
private $product;
/** @Column(name="RegCode",type="string")*/
private $reg_code;
/** @Column(name="OrderEmail",type="string")*/
private $email;

I need make query like this:

select * from `orders` where `OrderEmail`='some@mail.com' and `Product` LIKE 'My Products%'

I try handle query without like:


But it make error. Why?
Can I do this query without DQL? I want make this query use magic methods findBy**

Answer Source

This is not possible with the magic find methods. Try using the query builder:

$result = $em->getRepository("Orders")->createQueryBuilder('o')
   ->where('o.OrderEmail = :email')
   ->andWhere('o.Product LIKE :product')
   ->setParameter('email', 'some@mail.com')
   ->setParameter('product', 'My Products%')
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download