Php 如果是空的
我正在尝试筛选搜索。如何检查参数是否为空,不添加到何处查询 我点击了这个链接: 但我不为自己工作 当我尝试这样做时,我犯了一个错误: 未定义的方法“setFirstResult”。方法名称必须以findBy或findOneBy开头 谢谢你的建议 更新 如果我添加到命令行Php 如果是空的,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我正在尝试筛选搜索。如何检查参数是否为空,不添加到何处查询 我点击了这个链接: 但我不为自己工作 当我尝试这样做时,我犯了一个错误: 未定义的方法“setFirstResult”。方法名称必须以findBy或findOneBy开头 谢谢你的建议 更新 如果我添加到命令行setFirstResult错误更改: 未定义的方法“getQuery”。方法名称必须以findBy或findOneBy开头 当我使用pdo时,我可以使用bind参数。但是我不知道在理论上该怎么做。你应该继续使用$holiday\
setFirstResult
错误更改:
未定义的方法“getQuery”。方法名称必须以findBy或findOneBy开头
当我使用pdo时,我可以使用bind参数。但是我不知道在理论上该怎么做。你应该继续使用
$holiday\u软件包,而不是$repository
$repository = $this->getEntityManager()->getRepository('App\Entity\HolidayPackages');
$holiday_packages = $repository
->createQueryBuilder('hp')
->addSelect('hpt')
->innerJoin('hp.holiday_packages_translation', 'hpt')
->where('hpt.code = :code')
->setParameter('code', $language_code)
->andWhere('hpt.title LIKE :title')
->setParameter('title', $title . '%');
if (!empty($starting_date)) {
$repository
->andWhere('hp.starting_date = :starting_date')
->setParameter('starting_date', $starting_date);
}
$repository
->setFirstResult($offset)
->setMaxResults($limit)
->getQuery()
->getResult();
这是一个非常简单的错误。问问自己$holiday\u packages=$repository->createQueryBuilder('hp')在做什么,问题就会很明显。@Cerad你能告诉我更多关于这个非常简单的错误吗?我真的无法理解问题是什么,@Cerad的意思是,在第二块和第三块代码中,您应该使用$holiday_包而不是$repository,您的问题将是solved@OlivierC谢谢:)被接受的答案应该能解决这个问题,但也许将$holiday\u包重命名为$query\u builder会让您将来更容易理解。第一个调用createQueryBuilder返回一个QueryBuilder对象,该对象用于以下所有调用。以下调用之所以有效,是因为所有方法都返回$this(QueryBuilder)
$repository = $this->getEntityManager()->getRepository('App\Entity\HolidayPackages');
$holiday_packages = $repository
->createQueryBuilder('hp')
->addSelect('hpt')
->innerJoin('hp.holiday_packages_translation', 'hpt')
->where('hpt.code = :code')
->setParameter('code', $language_code)
->andWhere('hpt.title LIKE :title')
->setParameter('title', $title . '%');
if (!empty($starting_date)) {
$holiday_packages->andWhere('hp.starting_date = :starting_date')
->setParameter('starting_date', $starting_date);
}
$holiday_packages->setFirstResult($offset)
->setMaxResults($limit)
->getQuery()
->getResult();