original_string: public function onRelationManageRemove()
      {
          $this->beforeAjax();
  
          $recordId = post('record_id');
          $sessionKey = $this->deferredBinding ? $this->relationGetSessionKey() : null;
          $relatedModel = $this->relationModel;
  
          /*
           * Remove
           */
          if ($this->viewMode == 'multi') {
  
              $checkedIds = $recordId ? [$recordId] : post('checked');
  
              if (is_array($checkedIds)) {
                  $foreignKeyName = $relatedModel->getKeyName();
  
                  $models = $relatedModel->whereIn($foreignKeyName, $checkedIds)->get();
                  foreach ($models as $model) {
                      $this->relationObject->remove($model, $sessionKey);
                  }
              }
          }
          /*
           * Unlink
           */
          elseif ($this->viewMode == 'single') {
              if ($this->relationType == 'belongsTo') {
                  $this->relationObject->dissociate();
                  $this->relationObject->getParent()->save();
              }
              elseif ($this->relationType == 'hasOne' || $this->relationType == 'morphOne') {
                  if ($obj = $relatedModel->find($recordId)) {
                      $this->relationObject->remove($obj, $sessionKey);
                  }
                  elseif ($this->viewModel->exists) {
                      $this->relationObject->remove($this->viewModel, $sessionKey);
                  }
              }
  
              $this->viewWidget->setFormValues([]);
          }
  
          return $this->relationRefresh();
      }
code: public function onRelationManageRemove()
      {
          $this->beforeAjax();
  
          $recordId = post('record_id');
          $sessionKey = $this->deferredBinding ? $this->relationGetSessionKey() : null;
          $relatedModel = $this->relationModel;
  
          /*
           * Remove
           */
          if ($this->viewMode == 'multi') {
  
              $checkedIds = $recordId ? [$recordId] : post('checked');
  
              if (is_array($checkedIds)) {
                  $foreignKeyName = $relatedModel->getKeyName();
  
                  $models = $relatedModel->whereIn($foreignKeyName, $checkedIds)->get();
                  foreach ($models as $model) {
                      $this->relationObject->remove($model, $sessionKey);
                  }
              }
          }
          /*
           * Unlink
           */
          elseif ($this->viewMode == 'single') {
              if ($this->relationType == 'belongsTo') {
                  $this->relationObject->dissociate();
                  $this->relationObject->getParent()->save();
              }
              elseif ($this->relationType == 'hasOne' || $this->relationType == 'morphOne') {
                  if ($obj = $relatedModel->find($recordId)) {
                      $this->relationObject->remove($obj, $sessionKey);
                  }
                  elseif ($this->viewModel->exists) {
                      $this->relationObject->remove($this->viewModel, $sessionKey);
                  }
              }
  
              $this->viewWidget->setFormValues([]);
          }
  
          return $this->relationRefresh();
      }
code_tokens: public function onRelationManageRemove ( ) { $ this -> beforeAjax ( ) ; $ recordId = post ( 'record_id' ) ; $ sessionKey = $ this -> deferredBinding ? $ this -> relationGetSessionKey ( ) : null ; $ relatedModel = $ this -> relationModel ; /*
           * Remove
           */ if ( $ this -> viewMode == 'multi' ) { $ checkedIds = $ recordId ? [ $ recordId ] : post ( 'checked' ) ; if ( is_array ( $ checkedIds ) ) { $ foreignKeyName = $ relatedModel -> getKeyName ( ) ; $ models = $ relatedModel -> whereIn ( $ foreignKeyName , $ checkedIds ) -> get ( ) ; foreach ( $ models as $ model ) { $ this -> relationObject -> remove ( $ model , $ sessionKey ) ; } } } /*
           * Unlink
           */ elseif ( $ this -> viewMode == 'single' ) { if ( $ this -> relationType == 'belongsTo' ) { $ this -> relationObject -> dissociate ( ) ; $ this -> relationObject -> getParent ( ) -> save ( ) ; } elseif ( $ this -> relationType == 'hasOne' || $ this -> relationType == 'morphOne' ) { if ( $ obj = $ relatedModel -> find ( $ recordId ) ) { $ this -> relationObject -> remove ( $ obj , $ sessionKey ) ; } elseif ( $ this -> viewModel -> exists ) { $ this -> relationObject -> remove ( $ this -> viewModel , $ sessionKey ) ; } } $ this -> viewWidget -> setFormValues ( [ ] ) ; } return $ this -> relationRefresh ( ) ; }
docstring: Remove an existing related model from the primary model
docstring_tokens: Remove an existing related model from the primary model