Symfony 4:仅返回活动记录



我只想获取活动指标为真的记录:

class Question {
/**
* One Question has one Figure
* @ORMOneToOne(targetEntity="QuestionFigure", mappedBy="question")
*/
private $figure;
public function getFigure()
{   
$criteria = Criteria::create()->where(Criteria::expr()->eq("active", true));
return $this->figure->matching($criteria);
}

当我这样做时,我收到错误:

Attempted to call an undefined method named "matching" of class 

我相信这是因为匹配方法只能应用于 ArrayCollection,而 $this-> 不是。实现相同结果的类似方法是什么?

根据Ihor Kostrov提供的答案进行编辑:

getActive(( 不返回任何内容。测试一下,这有效:

public function getFigure()
{
if (!empty($this->figure) && $this->figure->getId() === 1) {
return $this->figure;
}
return null;
}

但是将 id 更改为 2 不起作用($this->figure->getId(( === 2(。我认为这是因为一对一关系学说只取一行?

是的,你有一对一的,所以你猫试试这个

public function getFigure(): ?QuestionFigure
{   
if (!empty($this->figure) && $this->figure->getActive()) {
return $this->figure;
}
return null;
}

不!你的实体中一定没有逻辑!

要激活所有问题并激活 QuestionFigure,您必须配置存储库并实现一种方法。

相关内容

  • 没有找到相关文章

最新更新