示例#1
0
 /**
  * Accessor to parent relations.
  *
  * @param {?AbstractModel|int|string|array} $parents If provided, add them as parents in relation.
  * @param {?string} $collection Collection identifier for the relation, defaults to the model's collection name.
  *
  * @return {array} Existing parents before modification.
  */
 protected function parents($collection = null, $parents = null, $replace = false)
 {
     if ($collection === null) {
         $collection = $this->collectionName();
     }
     $return = Relation::getParents($this->identity(), $collection);
     if ($parents) {
         if ($replace) {
             $this->deleteAncestors($collection);
         }
         if (!is_array($parents)) {
             $parents = array($parents);
         }
         foreach ($parents as $parent) {
             if ($parent instanceof AbstractModel) {
                 $parent = $parent->identity();
             }
             Relation::set($parent, $this->identity(), $collection);
         }
     }
     return $return;
 }