我有以下迁移来创建我的MySQL数据库表
public function up()
{
Schema::create('project_auth_keys', function (Blueprint $table) {
$table->increments('id');
$table->integer('project_id')->unsigned();
$table->string('key', 800);
$table->string('first_name', 80);
$table->string('last_name', 80);
$table->timestamps();
// link project id with real project id
$table->foreign('project_id')->references('id')->on('projects');
});
}
现在我想要做的就是制作关键词' " unique" ...但是我知道我可以通过简单地改变
来做到这一点$table->string('key', 800)->unique();
但我不想让整个表格独一无二,我希望根据project_id使其独一无二。
例如,project_id为1的条目和project_id为2的条目可以具有相同的密钥,但是在同一个project_id中不能有2个相同的密钥。
这是我在MySQL中可以做的事情,还是我必须在我的控制器中做这个规则?我可以在我的控制器中做到这一点不是问题,但如果可能的话,我宁愿在我的数据库中这样做。
修改
尝试添加
$table->primary(array('project_id', 'key'));
在$ table-> primary(数组(' project_id',' key'))正下方添加;
但是在执行此操作后,我在尝试运行迁移时遇到错误。