Beispiel #1
0
 /**
  * Creates a join table for has_and_belongs_to_many relationships
  * @param string $model_one
  * @param string $model_two
  */
 public function create_join_table($model_one, $model_two)
 {
     $table_name = NimbleAssociation::generate_join_table_name(array($model_one, $model_two));
     $table = $this->create_table($table_name, array('id' => false));
     $table->references($model_one);
     $table->references($model_two);
     $table->go();
 }
 public function testMakesCorrectJoinTableName()
 {
     $name = NimbleAssociation::generate_join_table_name(array('foo', 'bars'));
     $this->assertEquals('bar_foos', $name);
 }
Beispiel #3
0
 private static function insert_joined_record($class1, $class2)
 {
     $class2_assoc_name = Inflector::pluralize(Inflector::underscore(NimbleAssociation::class_as_string($class2)));
     $obj = NimbleAssociation::get_association_object($class1, $class2_assoc_name, 'has_and_belongs_to_many');
     $options = (array) $obj;
     $join_table = is_null($options['join_table']) ? NimbleAssociation::generate_join_table_name(array(strtolower(NimbleAssociation::class_as_string($class1)), strtolower(NimbleAssociation::class_as_string($class2)))) : $options['join_table'];
     $fk1 = is_null($options['foreign_key']) ? NimbleAssociation::foreign_key($class1) : $options['foreign_key'];
     $fk2 = is_null($options['association_foreign_key']) ? NimbleAssociation::foreign_key($class2) : $options['association_foreign_key'];
     static::execute("INSERT INTO {$join_table} ({$fk1}, {$fk2}) VALUES ('{$class1->id}', '{$class2->id}');");
 }