protected function buildDynamicTable(Blueprint $table) { $block_index = 'FK_' . $this->getDynamicTableName() . '_block_id_blocks'; $page_index = 'FK_' . $this->getDynamicTableName() . '_page_id_pages'; $table->increments('id'); $table->integer('block_id')->unsigned()->nullable(); $table->integer('page_id')->unsigned()->nullable(); $table->integer('is_shared')->unsigned()->nullable(); $table->foreign('block_id', $block_index)->references('id')->on('blocks')->onUpdate('CASCADE')->onDelete('SET NULL'); $table->foreign('page_id', $page_index)->references('id')->on('pages')->onUpdate('CASCADE')->onDelete('SET NULL'); $table->timestamps(); }
protected function buildDynamicTable(Blueprint $table) { $reference_column = $this->getDynamicType() . '_id'; $reference_table = $this->getDynamicType() . 's'; $reference_index = 'FK_' . $this->getDynamicTableName() . '_' . $reference_column . '_' . $reference_table; $table->increments('id'); $table->integer($reference_column)->unsigned()->nullable(); $table->foreign($reference_column, $reference_index)->references('id')->on($reference_table)->onUpdate('CASCADE')->onDelete('SET NULL'); $table->timestamps(); }
public function testAddingForeignKey() { $blueprint = new Blueprint('users'); $blueprint->foreign('foo_id')->references('id')->on('orders'); $statements = $blueprint->toSql($this->getGrammar()); $this->assertEquals(1, count($statements)); $this->assertEquals('alter table `users` add constraint users_foo_id_foreign foreign key (`foo_id`) references `orders` (`id`)', $statements[0]); }
public function testAddingForeignKeyWithCascadeDelete() { $blueprint = new Blueprint('users'); $blueprint->foreign('foo_id')->references('id')->on('orders')->onDelete('cascade'); $statements = $blueprint->toSql($this->getConnection(), $this->getGrammar()); $this->assertEquals(1, count($statements)); $this->assertEquals('alter table users add constraint users_foo_id_foreign foreign key ( foo_id ) references orders ( id ) on delete cascade', $statements[0]); }
public function testAddingForeignKey() { $blueprint = new Blueprint('users'); $blueprint->create(); $blueprint->string('foo')->primary(); $blueprint->string('order_id'); $blueprint->foreign('order_id')->references('id')->on('orders'); $statements = $blueprint->toSql($this->getGrammar()); $this->assertEquals(1, count($statements)); $this->assertEquals('create table "users" ("foo" varchar not null, "order_id" varchar not null, foreign key("order_id") references "orders"("id"), primary key ("foo"))', $statements[0]); }
/** * Create a foreign key on the given table. * * @param \Illuminate\Database\Schema\Blueprint $table * @param \Stidges\LaravelFkMigration\ForeignKey $key * @return void */ protected function createKey(Blueprint $table, ForeignKey $key) { $table->foreign($key->column)->references($key->references)->on($key->on)->onUpdate($key->onUpdate)->onDelete($key->onDelete); }