【发布时间】:2017-09-07 18:49:28
【问题描述】:
我想在我的文档中添加“市场”,该文档可以在一个表单中创建,您可以在其中选择分配给这些市场的代理机构。因此,您无需专门选择市场,而是通过选择代理机构自动添加它们。 这背后的逻辑是有效的,但我还没有实现一件事: 一个市场有几个机构,但我只希望市场显示一次。我的 foreach 循环如下所示:
if(count($this->getAgencies()) > 0){
foreach($this->getAgencies() as $agency) {
$this->addMarket($agency->getMarket());
}
}
}
只要我在每个市场中只选择一个代理机构,这种方法效果很好。一旦我为一个市场选择了几家代理商,它就不再起作用了。为了避免这种情况,我将代码更改为:
$markets = $this->getMarkets();
if(count($this->getAgencies()) > 0){
foreach($this->getAgencies() as $agency) {
if(!$this->markets->contains($markets)) {
$this->addMarket($agency->getMarket());
}
}
}
由于市场和机构都是数组集合,简单的“in_Array”或“unique_array”不起作用。所以我认为“包含”是我应该用于数组集合的函数。但显然不是.. 还有什么想法吗? :)
【问题讨论】:
标签: symfony foreach unique distinct arraycollection