亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 LARAVEL 5.6 上命名 UNIQUE、INDEX、FOREING KEYS 的正確方法

在 LARAVEL 5.6 上命名 UNIQUE、INDEX、FOREING KEYS 的正確方法

PHP
冉冉說 2023-10-21 10:31:21
我在 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');    });}我該如何改進我的代碼?例如,我不知道如何將同一行中的接下來的兩行設置為 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');你可以幫幫我嗎?提前致謝。
查看完整描述

3 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

根據我的經驗,這是最好的寫法。如果您的其他表被命名,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');

    });

}


查看完整回答
反對 回復 2023-10-21
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

你可以做


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 會處理這些,除非你愿意。


查看完整回答
反對 回復 2023-10-21
?
達令說

TA貢獻1821條經驗 獲得超6個贊

不要忘記使用unsigned()在pais_id


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');

    });

}


查看完整回答
反對 回復 2023-10-21
  • 3 回答
  • 0 關注
  • 171 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號