【问题标题】:symfony add unique values from array collection within foreach loop on prepersistsymfony 在 prepersist 上的 foreach 循环中从数组集合中添加唯一值
【发布时间】: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


    【解决方案1】:

    更改条件部分代码,您应该检查 $this->markets 集合中是否已经存在代理市场:

    if(!$this->markets->contains($agency->getMarket())) {
          $this->addMarket($agency->getMarket());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      相关资源
      最近更新 更多