コード例 #1
0
 /**
  * Example:
  *
  * return [
  *     9 => [
  *         'id' => 9,
  *         'optionID' => 9,
  *         'name' => 'Farbe',
  *         'groupID' => 1,
  *         'groupName' => 'Edelbrände',
  *         'value' => 'goldig',
  *         'values' => [
  *             53 => 'goldig',
  *         ],
  *     ],
  *     2 => [
  *         'id' => 2,
  *         'optionID' => 2,
  *         'name' => 'Flaschengröße',
  *         'groupID' => 1,
  *         'groupName' => 'Edelbrände',
  *         'value' => '0,5 Liter, 0,7 Liter, 1,0 Liter',
  *         'values' => [
  *             23 => '0,5 Liter',
  *             24 => '0,7 Liter',
  *             25 => '1,0 Liter',
  *         ],
  *     ],
  * ];
  *
  * @param StoreFrontBundle\Struct\Property\Set $set
  * @return array
  */
 public function convertPropertySetStruct(StoreFrontBundle\Struct\Property\Set $set)
 {
     $result = [];
     foreach ($set->getGroups() as $group) {
         $values = array_map(function (StoreFrontBundle\Struct\Property\Option $option) {
             return $option->getName();
         }, $group->getOptions());
         $mediaValues = array();
         foreach ($group->getOptions() as $option) {
             /**@var $option StoreFrontBundle\Struct\Property\Option */
             if ($option->getMedia()) {
                 $mediaValues[$option->getId()] = array_merge(array('valueId' => $option->getId()), $this->convertMediaStruct($option->getMedia()));
             }
         }
         $result[$group->getId()] = ['id' => $group->getId(), 'optionID' => $group->getId(), 'name' => $group->getName(), 'groupID' => $set->getId(), 'groupName' => $set->getName(), 'value' => implode(', ', $values), 'values' => $values, 'media' => $mediaValues];
     }
     return $result;
 }