我的实体有一个数组集合 我还有2个从主实体继承的其他实体
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
由于
答案 0 :(得分:0)
如果我理解你的问题,你想在你的树枝模板中将对象与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
];
如果您真的想在视图中执行此过程,最好的方法是在twig extension中编写此代码。