基于Id的Laravel / MySql唯一字符串?

时间:2015-04-29 15:19:37

标签: php mysql laravel

我有以下迁移来创建我的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'))正下方添加;

但是在执行此操作后,我在尝试运行迁移时遇到错误。

enter image description here

0 个答案:

没有答案