Symfony discr列的ArrayCollection筛选器
我的实体中有一个数组集合 我有两个从主实体继承的其他实体Symfony discr列的ArrayCollection筛选器,symfony,twig,Symfony,Twig,我的实体中有一个数组集合 我有两个从主实体继承的其他实体 this is my code: /** * FooBase * * @ORM\Table(name="mytable") * @ORM\InheritanceType("JOINED") * @ORM\DiscriminatorColumn(name="discr", type="string") * @ORM\DiscriminatorMap({ * "foo"
this is my code:
/**
* FooBase
*
* @ORM\Table(name="mytable")
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({
* "foo" = "\Entity\Foo",
* "bar" = "\Entity\Bar",
* })
* @ORM\Entity(repositoryClass="FooBaseRepository")
*/
在Twig中,我有这个代码
{{ profile.fooBaseCollection|length }}
我将返回整个ArrayCollection的长度
我只能检索desc=foo的项目?
差不多
$foo instanceof Foo
谢谢如果我理解你的问题,你想在你的小树枝模板中将对象与Foo和Bar类型分开 在我看来,您不应该在视图中这样做,您可以在操作或服务中过滤数组集合,并将结果发送到视图
$foos = $profile->fooBaseCollection->filter(
function($entry) {
return $entry instanceof Foo;
}
);
$bars = $profile->fooBaseCollection->filter(
function($entry) {
return $entry instanceof Bar;
}
);
$twigVars = [
'foos' => $foos,
'bars' => $bars
];
如果您真的想在您的视图中实现这个过程,那么最好的方法就是在