public function attach()
    {
        $this->loadModel('Field.FieldInstances');

        if ($this->request->data()) {
            $handler = $this->request->data('handler');
            $info = fieldsInfo($handler);
            $type = !empty($info['type']) ? $info['type'] : null;
            $data = $this->request->data();
            $data['eav_attribute'] = array_merge([
                'table_alias' => $this->_tableAlias,
                'bundle' => $this->_getBundle(),
                'type' => $type,
            ], (array)$this->request->data('eav_attribute'));

            $fieldInstance = $this->FieldInstances->newEntity($data, ['associated' => ['EavAttribute']]);
            $this->_validateSlug($fieldInstance);
            $instanceErrors = $fieldInstance->errors();
            $attributeErrors = $fieldInstance->get('eav_attribute')->errors();
            $success = empty($instanceErrors) && empty($attributeErrors);

            if ($success) {
                $success = $this->FieldInstances->save($fieldInstance, ['associated' => ['EavAttribute']]);
                if ($success) {
                    $this->Flash->success(__d('field', 'Field attached!'));
                    $this->redirect($this->referer());
                }
            }

            if (!$success) {
                $this->Flash->danger(__d('field', 'Field could not be attached'));
            }
        } else {
            $fieldInstance = $this->FieldInstances->newEntity();
        }

        $fieldsInfoCollection = fieldsInfo();
        $fieldsList = $fieldsInfoCollection->combine('handler', 'name')->toArray(); // for form select
        $fieldsInfo = $fieldsInfoCollection->toArray(); // for help-blocks

        $this->title(__d('field', 'Attach New Field'));
        $this->set('fieldsList', $fieldsList);
        $this->set('fieldsInfo', $fieldsInfo);
        $this->set('fieldInstance', $fieldInstance);
    }
public function attach()
    {
        $this->loadModel('Field.FieldInstances');

        if ($this->request->data()) {
            $handler = $this->request->data('handler');
            $info = fieldsInfo($handler);
            $type = !empty($info['type']) ? $info['type'] : null;
            $data = $this->request->data();
            $data['eav_attribute'] = array_merge([
                'table_alias' => $this->_tableAlias,
                'bundle' => $this->_getBundle(),
                'type' => $type,
            ], (array)$this->request->data('eav_attribute'));

            $fieldInstance = $this->FieldInstances->newEntity($data, ['associated' => ['EavAttribute']]);
            $this->_validateSlug($fieldInstance);
            $instanceErrors = $fieldInstance->errors();
            $attributeErrors = $fieldInstance->get('eav_attribute')->errors();
            $success = empty($instanceErrors) && empty($attributeErrors);

            if ($success) {
                $success = $this->FieldInstances->save($fieldInstance, ['associated' => ['EavAttribute']]);
                if ($success) {
                    $this->Flash->success(__d('field', 'Field attached!'));
                    $this->redirect($this->referer());
                }
            }

            if (!$success) {
                $this->Flash->danger(__d('field', 'Field could not be attached'));
            }
        } else {
            $fieldInstance = $this->FieldInstances->newEntity();
        }

        $fieldsInfoCollection = fieldsInfo();
        $fieldsList = $fieldsInfoCollection->combine('handler', 'name')->toArray(); // for form select
        $fieldsInfo = $fieldsInfoCollection->toArray(); // for help-blocks

        $this->title(__d('field', 'Attach New Field'));
        $this->set('fieldsList', $fieldsList);
        $this->set('fieldsInfo', $fieldsInfo);
        $this->set('fieldInstance', $fieldInstance);
    }
public function attach ( ) { $ this -> loadModel ( 'Field.FieldInstances' ) ; if ( $ this -> request -> data ( ) ) { $ handler = $ this -> request -> data ( 'handler' ) ; $ info = fieldsInfo ( $ handler ) ; $ type = ! empty ( $ info [ 'type' ] ) ? $ info [ 'type' ] : null ; $ data = $ this -> request -> data ( ) ; $ data [ 'eav_attribute' ] = array_merge ( [ 'table_alias' => $ this -> _tableAlias , 'bundle' => $ this -> _getBundle ( ) , 'type' => $ type , ] , ( array ) $ this -> request -> data ( 'eav_attribute' ) ) ; $ fieldInstance = $ this -> FieldInstances -> newEntity ( $ data , [ 'associated' => [ 'EavAttribute' ] ] ) ; $ this -> _validateSlug ( $ fieldInstance ) ; $ instanceErrors = $ fieldInstance -> errors ( ) ; $ attributeErrors = $ fieldInstance -> get ( 'eav_attribute' ) -> errors ( ) ; $ success = empty ( $ instanceErrors ) && empty ( $ attributeErrors ) ; if ( $ success ) { $ success = $ this -> FieldInstances -> save ( $ fieldInstance , [ 'associated' => [ 'EavAttribute' ] ] ) ; if ( $ success ) { $ this -> Flash -> success ( __d ( 'field' , 'Field attached!' ) ) ; $ this -> redirect ( $ this -> referer ( ) ) ; } } if ( ! $ success ) { $ this -> Flash -> danger ( __d ( 'field' , 'Field could not be attached' ) ) ; } } else { $ fieldInstance = $ this -> FieldInstances -> newEntity ( ) ; } $ fieldsInfoCollection = fieldsInfo ( ) ; $ fieldsList = $ fieldsInfoCollection -> combine ( 'handler' , 'name' ) -> toArray ( ) ; // for form select $ fieldsInfo = $ fieldsInfoCollection -> toArray ( ) ; // for help-blocks $ this -> title ( __d ( 'field' , 'Attach New Field' ) ) ; $ this -> set ( 'fieldsList' , $ fieldsList ) ; $ this -> set ( 'fieldsInfo' , $ fieldsInfo ) ; $ this -> set ( 'fieldInstance' , $ fieldInstance ) ; }
Attach action.

Attaches a new Field to the table being managed.

@return void
Attach action .