php – 使用laravel中的额外列创建数据透视迁移

我看了这个
https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
我发现了那个

PHP artisan migrate

不会自动创建数据透视表,我检查了如何创建它,但我无法找到如何使用额外的列创建它.
例如,这些是我的相关模型:

class User extends Authenticatable {
  public function courses() 
  {
    return $this->belongsToMany('App\Course')
    ->withPivot('attendance', 'grade');
      ->withTimestamps();
  }
}

另一种模式

class Course extends Model
{
//
}

我不需要反向关系来实例化这里.

问题是当我去MysqL时我找不到数据透视表.那么如何使用这些数据透视表手动创建它.

解决方法:

您必须手动创建中间/数据透视表(您必须按字母顺序命名表),使用以下迁移:

    public function up()
    {
        Schema::create('course_user', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->foreign('user_id')->references('id')->on('users');
            $table->integer('course_id')->unsigned();
            $table->foreign('course_id')->references('id')->on('courses');
            $table->string('attendance');
            $table->string('grade');
            $table->timestamps();
        });
    }

在此之后,运行迁移:

PHP artisan migrate

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...