symfony4 No6: 数据库操作
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();