How is a pivot table created by Laravel?

后端 未结 5 1464

In Laravel 4, when working with many-to-many relationships as described in the 4.2 docs, how can I actually get Laravel to create the pivot table for me?

Do I need

5条回答
  •  北海茫月
    2020-12-13 02:31

    For Many to Many relationships you can create the Migration file of the Database manually like this:

    use Illuminate\Database\Migrations\Migration;
    use Illuminate\Database\Schema\Blueprint;
    
    class CreateAccountTagTable extends Migration
    {
    
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('account_tag', function (Blueprint $table) {
                // $table->timestamps(); // not required
                // $table->softDeletes(); // not required
    
                $table->integer('account_id')->unsigned();
                $table->foreign('account_id')->references('id')->on('accounts');
    
                $table->integer('tag_id')->unsigned()->nullable();
                $table->foreign('tag_id')->references('id')->on('tags');
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::drop('account_tag');
        }
    }
    

    Note: in case you have timestamps on the pivot table you must set withTimestamps on the relationship of both ends like this:

    return $this->belongsToMany(\Mega\Modules\Account\Models\Tag::class)->withTimestamps();
    

    .

    return $this->belongsToMany(\Mega\Modules\Account\Models\Account::class)->withTimestamps();
    

提交回复
热议问题