src/Phlexible/Bundle/MetaSetBundle/Controller/SetsController.php
public function saveAction(Request $request)
    {
        $id = $request->get('id');
        $data = $request->get('data');
        $data = json_decode($data, true);

        $metaSetManager = $this->get('phlexible_meta_set.meta_set_manager');
        $metaSet = $metaSetManager->find($id);

        $metaSet->setRevision($metaSet->getRevision() + 1);

        $fields = [];
        foreach ($metaSet->getFields() as $field) {
            $fields[$field->getId()] = $field;
        }

        foreach ($data as $item) {
            if (!empty($item['options'])) {
                $options = [];
                foreach (explode(',', $item['options']) as $key => $value) {
                    $options[$key] = trim($value);
                }
                $item['options'] = implode(',', $options);
            }

            if (isset($fields[$item['id']])) {
                $field = $fields[$item['id']];
                unset($fields[$item['id']]);
            } else {
                $field = $metaSetManager->createMetaSetField()
                    ->setId(UuidUtil::generate());
            }

            $field
                ->setName($item['key'])
                ->setMetaSet($metaSet)
                ->setType($item['type'])
                ->setRequired(!empty($item['required']) ? 1 : 0)
                ->setSynchronized(!empty($item['synchronized']) ? 1 : 0)
                ->setReadonly(!empty($item['readonly']) ? 1 : 0)
                ->setOptions(!empty($item['options']) ? $item['options'] : null);

            $metaSet->addField($field);
        }

        $metaSet
            ->setModifyUser($this->getUser()->getDisplayName())
            ->setModifiedAt(new \DateTime());

        foreach ($fields as $field) {
            $metaSet->removeField($field);
        }

        $metaSetManager->updateMetaSet($metaSet);

        return new ResultResponse(true, "Fields saved for set {$metaSet->getName()}.");
    }
public function saveAction(Request $request)
    {
        $id = $request->get('id');
        $data = $request->get('data');
        $data = json_decode($data, true);

        $metaSetManager = $this->get('phlexible_meta_set.meta_set_manager');
        $metaSet = $metaSetManager->find($id);

        $metaSet->setRevision($metaSet->getRevision() + 1);

        $fields = [];
        foreach ($metaSet->getFields() as $field) {
            $fields[$field->getId()] = $field;
        }

        foreach ($data as $item) {
            if (!empty($item['options'])) {
                $options = [];
                foreach (explode(',', $item['options']) as $key => $value) {
                    $options[$key] = trim($value);
                }
                $item['options'] = implode(',', $options);
            }

            if (isset($fields[$item['id']])) {
                $field = $fields[$item['id']];
                unset($fields[$item['id']]);
            } else {
                $field = $metaSetManager->createMetaSetField()
                    ->setId(UuidUtil::generate());
            }

            $field
                ->setName($item['key'])
                ->setMetaSet($metaSet)
                ->setType($item['type'])
                ->setRequired(!empty($item['required']) ? 1 : 0)
                ->setSynchronized(!empty($item['synchronized']) ? 1 : 0)
                ->setReadonly(!empty($item['readonly']) ? 1 : 0)
                ->setOptions(!empty($item['options']) ? $item['options'] : null);

            $metaSet->addField($field);
        }

        $metaSet
            ->setModifyUser($this->getUser()->getDisplayName())
            ->setModifiedAt(new \DateTime());

        foreach ($fields as $field) {
            $metaSet->removeField($field);
        }

        $metaSetManager->updateMetaSet($metaSet);

        return new ResultResponse(true, "Fields saved for set {$metaSet->getName()}.");
    }
public function saveAction ( Request $ request ) { $ id = $ request -> get ( 'id' ) ; $ data = $ request -> get ( 'data' ) ; $ data = json_decode ( $ data , true ) ; $ metaSetManager = $ this -> get ( 'phlexible_meta_set.meta_set_manager' ) ; $ metaSet = $ metaSetManager -> find ( $ id ) ; $ metaSet -> setRevision ( $ metaSet -> getRevision ( ) + 1 ) ; $ fields = [ ] ; foreach ( $ metaSet -> getFields ( ) as $ field ) { $ fields [ $ field -> getId ( ) ] = $ field ; } foreach ( $ data as $ item ) { if ( ! empty ( $ item [ 'options' ] ) ) { $ options = [ ] ; foreach ( explode ( ',' , $ item [ 'options' ] ) as $ key => $ value ) { $ options [ $ key ] = trim ( $ value ) ; } $ item [ 'options' ] = implode ( ',' , $ options ) ; } if ( isset ( $ fields [ $ item [ 'id' ] ] ) ) { $ field = $ fields [ $ item [ 'id' ] ] ; unset ( $ fields [ $ item [ 'id' ] ] ) ; } else { $ field = $ metaSetManager -> createMetaSetField ( ) -> setId ( UuidUtil :: generate ( ) ) ; } $ field -> setName ( $ item [ 'key' ] ) -> setMetaSet ( $ metaSet ) -> setType ( $ item [ 'type' ] ) -> setRequired ( ! empty ( $ item [ 'required' ] ) ? 1 : 0 ) -> setSynchronized ( ! empty ( $ item [ 'synchronized' ] ) ? 1 : 0 ) -> setReadonly ( ! empty ( $ item [ 'readonly' ] ) ? 1 : 0 ) -> setOptions ( ! empty ( $ item [ 'options' ] ) ? $ item [ 'options' ] : null ) ; $ metaSet -> addField ( $ field ) ; } $ metaSet -> setModifyUser ( $ this -> getUser ( ) -> getDisplayName ( ) ) -> setModifiedAt ( new \ DateTime ( ) ) ; foreach ( $ fields as $ field ) { $ metaSet -> removeField ( $ field ) ; } $ metaSetManager -> updateMetaSet ( $ metaSet ) ; return new ResultResponse ( true , "Fields saved for set {$metaSet->getName()}." ) ; }
Save set.

@param Request $request

@return ResultResponse
@Route("/save", name="metasets_sets_save")
Save set .