Beispiel #1
0
 /**
  * Tests if this object has a relationship to a different model.
  *
  * @param   object   related ORM model
  * @return  boolean
  */
 public function has(ORM $model)
 {
     // Get the plural object name as the related name
     $related = $model->object_plural;
     if (($join_table = array_search($related, $this->has_and_belongs_to_many)) === FALSE) {
         return FALSE;
     }
     if (is_int($join_table)) {
         // No "through" table, load the default JOIN table
         $join_table = $model->join_table($this->table_name);
     }
     if (!isset($this->object_relations[$related])) {
         // Load the object relationships
         $this->changed_relations[$related] = $this->object_relations[$related] = $this->load_relations($join_table, $model);
     }
     if ($model->loaded) {
         // Check if a specific object exists
         return in_array($model->primary_key_value, $this->changed_relations[$related]);
     } else {
         return !empty($this->changed_relations[$related]);
     }
 }
Beispiel #2
0
 /**
  * Tests if this object has a relationship to a different model.
  *
  * @param   object   related ORM model
  * @param   boolean  check for any relations to given model
  * @return  boolean
  */
 public function has(ORM $model, $any = FALSE)
 {
     // Determine plural or singular relation name
     $related = $model->table_names_plural === TRUE ? $model->object_plural : $model->object_name;
     if (($join_table = array_search($related, $this->has_and_belongs_to_many)) === FALSE) {
         return FALSE;
     }
     if (is_int($join_table)) {
         // No "through" table, load the default JOIN table
         $join_table = $model->join_table($this->table_name);
     }
     if (!isset($this->object_relations[$related])) {
         // Load the object relationships
         $this->changed_relations[$related] = $this->object_relations[$related] = $this->load_relations($join_table, $model);
     }
     if (!$model->empty_primary_key()) {
         // Check if a specific object exists
         return in_array($model->primary_key_value, $this->changed_relations[$related]);
     } elseif ($any) {
         // Check if any relations to given model exist
         return !empty($this->changed_relations[$related]);
     } else {
         return FALSE;
     }
 }
Beispiel #3
0
 /**
  * Tests if this object has a relationship to a different model.
  *
  * @param   object   related ORM model
  * @return  boolean
  */
 public function has(ORM $model)
 {
     if (!$this->loaded) {
         return FALSE;
     }
     if (($join_table = array_search(inflector::plural($model->object_name), $this->has_and_belongs_to_many)) === FALSE) {
         return FALSE;
     }
     if (is_int($join_table)) {
         // No "through" table, load the default JOIN table
         $join_table = $model->join_table($this->table_name);
     }
     if ($model->loaded) {
         // Select only objects of a specific id
         $this->db->where($model->foreign_key(NULL, $join_table), $model->primary_key_value);
     }
     // Return the number of rows that exist
     return $this->db->where($this->foreign_key(NULL, $join_table), $this->object[$this->primary_key])->count_records($join_table);
 }