laravel 4 - seeders - las migraciones laravel del generador de esquemas únicas en dos columnas
modificar migraciones laravel (2)
El segundo parámetro es configurar manualmente el nombre del índice único. Use una matriz como el primer parámetro para crear una clave única en múltiples columnas.
$table->unique(array(''mytext'', ''user_id''));
o (un poco más limpio)
$table->unique([''mytext'', ''user_id'']);
¿Cómo puedo establecer restricciones únicas en dos columnas?
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);
Simplemente puedes usar
$table->primary([''first'', ''second'']);
Referencia: http://laravel.com/docs/master/migrations#creating-indexes
Como ejemplo:
Schema::create(''posts_tags'', function (Blueprint $table) {
$table->integer(''post_id'')->unsigned();
$table->integer(''tag_id'')->unsigned();
$table->foreign(''post_id'')->references(''id'')->on(''posts'');
$table->foreign(''tag_id'')->references(''id'')->on(''tags'');
$table->timestamps();
$table->softDeletes();
$table->primary([''post_id'', ''tag_id'']);
});