Example #1
0
 function __call($name, $arguments)
 {
     $relationship = Model::getRelationship($this->rowClass, $name);
     if ($relationship === false && Inflector::isPlural($name)) {
         $name = Inflector::toSingular($name);
         $relationship = Model::getRelationship($this->rowClass, $name);
         if (!$relationship instanceof BelongsToRelationship) {
             $relationship = false;
         }
     }
     if ($relationship !== false) {
         return $relationship->selectModelSet($this);
     } else {
         throw new RecessException('Relationship "' . $name . '" does not exist.', get_defined_vars());
     }
 }
 function removeFrom(Model $model, Model $relatedModel)
 {
     if (!isset($this->through)) {
         $foreignKey = $this->foreignKey;
         $relatedModel->{$foreignKey} = '';
         $relatedModel->save();
         return $model;
     } else {
         $through = new $this->through();
         $localPrimaryKey = Model::primaryKeyName($model);
         $localForeignKey = $this->foreignKey;
         $through->{$localForeignKey} = $model->{$localPrimaryKey};
         $relatedPrimaryKey = Model::primaryKeyName($this->through);
         $relatedForeignKey = Model::getRelationship($this->through, Inflector::toSingular($this->name))->foreignKey;
         $through->{$relatedForeignKey} = $relatedModel->{$relatedPrimaryKey};
         $through->find()->delete(false);
     }
 }