original_string: 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);
      }
code: 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);
      }
code_tokens: 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 ) ; }
docstring: Attach action.
  
  Attaches a new Field to the table being managed.
  
  @return void
docstring_tokens: Attach action .