/** * 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]); } }
/** * 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; } }
/** * 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); }