Php 如果是空的

Php 如果是空的,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我正在尝试筛选搜索。如何检查参数是否为空,不添加到何处查询 我点击了这个链接: 但我不为自己工作 当我尝试这样做时,我犯了一个错误: 未定义的方法“setFirstResult”。方法名称必须以findBy或findOneBy开头 谢谢你的建议 更新 如果我添加到命令行setFirstResult错误更改: 未定义的方法“getQuery”。方法名称必须以findBy或findOneBy开头 当我使用pdo时,我可以使用bind参数。但是我不知道在理论上该怎么做。你应该继续使用$holiday\

我正在尝试筛选搜索。如何检查参数是否为空,不添加到何处查询

我点击了这个链接:

但我不为自己工作

当我尝试这样做时,我犯了一个错误:

未定义的方法“setFirstResult”。方法名称必须以findBy或findOneBy开头

谢谢你的建议

更新

如果我添加到命令行
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();