任何人都可以帮我建立contact_user吗?我需要在这个表中创建两个主键,但是我在artisan中运行它但是不起作用。有人怎么解决这个问题?
public function up()
{
Schema::create('users', function($table){
$table->increments('id');
$table->string('name',50);
$table->date('born');
$table->string('email');
$table->timestamps();
});
Schema::create('contact', function ($t){
$t->increments('id');
$t->string('email');
});
Schema::create('contact_user', function ($t){
$t->integer('id_user')->primary();
$t->integer('id_contact')->primary();
$t->foreign('fk_user')->references('id_user')->on('users')->onDelete('cascade')->onUpdate('cascade');
$t->foreign('fk_contact')->references('id_contact')->on('contact')->onDelete('cascade')->onUpdate('cascade');
});
}
答案 0 :(得分:1)
这应该有效,但未经过测试。其中大部分是从文档中提取出来的,而且非常直接。我已经改变了一些列以匹配Laravel期望的命名约定。这使得在建立关系等时生活更加轻松......
查看以下内容:
public function up()
{
Schema::create('users', function($table) {
$table->increments('id');
$table->string('name',50);
$table->date('born');
$table->string('email');
$table->timestamps();
});
Schema::create('contacts', function ($t) {
$t->increments('id');
$t->string('email');
});
Schema::create('contact_user', function ($t) {
$t->integer('user_id')->unsigned();
$t->integer('contact_id')->unsigned();
$t->primary(array('user_id', 'contact_id'));
$t->foreign('user_id')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
$t->foreign('contact_id')->references('id')->on('contacts')->onDelete('cascade')->onUpdate('cascade');
});
}