php - Doctrine querybuilder 不适用于我在 PHP 中的 SQL 语句
问题描述
请原谅我,我对编程很陌生。
基本上,我正在尝试运行 SQL 语句而不使其容易受到 SQL 注入的影响
我尝试运行我的代码,但这里有问题:
$manager = this->getDoctrine()->getManager();
$builder = $manager->getRepository('AppBundle:User')->createQueryBuilder('u');
$builder->select('*')
->from('home_users', 'u')
->where(u.username LIKE :pattern');
$query = $builders->getQuery();
$query->setParameter('pattern', "%pattern%");
$users = $query->getResult();
我正在尝试在本指南中使用 Doctrine QueryBuilder:https ://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/query-builder.html
任何帮助都感激不尽
解决方案
为您的解决方案
$pattern ="You pattern her"; $manager = this->getDoctrine()->getManager(); $userRepo = $manager->getRepository('AppBundle:User'); $queryBuilder = $userRepo->createQueryBuilder('u'); $queryBuilder->select('u') ->where('u.username LIKE :pattern') ->setParameter('pattern', '%'.$pattern.'%'); $users = $queryBuilder->getQuery()->getResult();
你可以对 Evolution Reutilisation 、 Clean code 和 Best practice做一点改进
在用户存储库中
public function findUsersLikePattern(string $pattern = null) { $queryBuilder = $this->createQueryBuilder('u') ->select('u'); if ($pattern) { $queryBuilder ->where('u.username LIKE :pattern') ->setParameter('pattern', '%' . $pattern . '%'); } return $queryBuilder->getQuery()->getResult(); }
在控制器中
$pattern ="You pattern her"; $manager = this->getDoctrine()->getManager(); $users = $manager->getRepository('AppBundle:User')->findUsersLikePattern($pattern);
推荐阅读
- jmeter - 通过 ModuleController 多次调用时如何强制执行 OnceOnlyController
- ios - 异步获取图像 Firebase Swift 5
- r - Rmarkdown Links - 如何获取没有扩展名的当前文件的名称?
- java - 在不使用 MongoTemplate 的 @Version 注释的情况下设置版本属性
- javascript - 在videojs中设置新的currentTime后检测播放器何时完成加载源
- azure - 如何在 azure 活动目录更改时触发功能
- python - 如何在json数据中传递日期
- javascript - 单击按钮时如何忽略div单击?
- javascript - Moment JS 和 BST
- firebase - Firebase + REST API WEB按指定子键过滤