laravel-4 - 模式生成器 Laravel 迁移在两列上是唯一的

标签 laravel-4 database-schema

如何在两列上设置唯一约束?

class MyModel extends Migration {
  public function up()
  {
    Schema::create('storage_trackers', function(Blueprint $table) {
      $table->increments('id');
      $table->string('mytext');
      $table->unsignedInteger('user_id');
      $table->engine = 'InnoDB';
      $table->unique('mytext', 'user_id');
    });
  }
}

MyMode::create(array('mytext' => 'test', 'user_id' => 1);
// this fails??
MyMode::create(array('mytext' => 'test', 'user_id' => 2);

最佳答案

第二个参数是手动设置唯一索引的名称。使用数组作为第一个参数来创建跨多个列的唯一键。

$table->unique(array('mytext', 'user_id'));

或者(更整洁一点)

$table->unique(['mytext', 'user_id']);

关于laravel-4 - 模式生成器 Laravel 迁移在两列上是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20065697/

相关文章:

javascript - Laravel 统计本月的 IP 地址

php - Laravel 4 复杂查询与联合/加入

mysql - 处理电子商务返回的数据库模型

mysql - 在mysql中复制没有数据的数据库结构(带有空表)

mysql - SQL:在应用程序或单独的表中存储数据字段选择?

sql - 创建 PostgreSQL 表 + 关系 - 关系问题 - 一对一

php - 在 Laravel 4 中从现有数据库创建迁移

laravel - 限制可以上传的文件数

php - Laravel 4 中的公共(public)可用函数

使用 Deno 或 Rust 的 MongoDB Schema