1.对实体对象进行相关查询操作

$em = $this->getEntityManager();

$object = $em->findOneBy([‘nid’ => $nid]);

也可以对其他实体进行操作

$object = $em->getRepository(NotificationsRecords::class)->findOneBy([‘nid’ => $nid]);

对查询的对象进行setter操作

set:

$object->setIsread(1);

$em->persist($object);

$em->flush();

2.第二步的操作均为对象,如果需要获取数组,可以采用创建queryBuilder的方式

$this->createQueryBuilder(‘u’)

->where(‘u.something = :value’)->setParameter(‘value’, $value)

->orderBy(‘u.id’, ‘ASC’)

->setMaxResults(10)

->getQuery()

->getArrayResult();

3.纯sql语句进行操作(需要做join查询建议使用)

获取对象:

$em = $this->getEntityManager();

$query = $em->createQuery(‘SELECT p FROM App\Entity\Product p

WHERE p.price > :price ORDER BY p.price

ASC’)->setParameter(‘price’, 10);

return $query->execute();

获取数组:

$conn = $this->getEntityManager()->getConnection();

$sql = ‘SELECT * FROM product p WHERE p.price > :price ORDER BY p.price ASC’;

$stmt = $conn->prepare($sql);

$stmt->execute([‘price’ => 10]);

return $stmt->fetchAll();

标签: symfony4

添加新评论