[英]Is there a way to set a validation on multiple inputs with similar name? Laravel 5.6
[英]Correct way to name UNIQUE, INDEX, FOREING KEYS on LARAVEL 5.6
我在 LARAVEL 上的迁移有以下代码:
public function up()
{
Schema::create('estados', function (Blueprint $table) {
$table->bigIncrements('id')->primary('PRIMARY');
$table->string('nombre' , 30)->nullable();
$table->unique('nombre' , 'nombre_u');
$table->integer('pais_id')->default('1');
$table->foreign('pais_id' , 'pais_id_fk')->refereces('id')->on('paises');
$table->index('pais_id' , 'pais_id_fk_idx');
});
}
如何改进我的代码? Idk 如何在同一行中将下 2 行设置为 UNIQUE:
$table->string('nombre' , 30)->nullable();
$table->unique('nombre' , 'nombre_u');
或者这 3 行只有 1 行:
$table->integer('pais_id')->default('1');
$table->foreign('pais_id' , 'pais_id_fk')->refereces('id')->on('paises');
$table->index('pais_id' , 'pais_id_fk_idx');
你可以帮帮我吗?
提前致谢。
你可以做
public function up()
{
Schema::create('estados', function (Blueprint $table) {
$table->bigIncrements('id')->primary('PRIMARY');
$table->string('nombre' , 30)->unique()->nullable();
$table->integer('pais_id')->index()->default('1');
$table->foreign('pais_id')->references('id')->on('paises');
});
}
除非您愿意,否则您不需要创建手动索引或外键 Laravel 会处理这个问题。
根据我的经验,这是最好的写法。 如果您的另一个表名为pais
,那么这将是最好的:
public function up()
{
Schema::create('estados', function (Blueprint $table) {
$table->id();
$table->string('nombre' , 30)->nullable()->unique();
$table->foreignId('pais_id')->constrained();
});
}
否则,这也很好......
public function up()
{
Schema::create('estados', function (Blueprint $table) {
$table->id();
$table->string('nombre' , 30)->nullable()->unique();
$table->unsignedBigInteger('pais_id')->default('1');
$table->foreign('pais_id')->refereces('id')->on('paises');
});
}
不要忘记在pais_id
中使用unsigned()
public function up()
{
Schema::create('estados', function (Blueprint $table) {
$table->bigIncrements('id')->primary('PRIMARY');
$table->string('nombre' , 30)->unique()->nullable();
$table->integer('pais_id')->unsigned()->index()->default('1');
});
Schema::table('estados', function ($table) {
$table->foreign('pais_id')->references('id')->on('paises');
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.