我读过这个 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
关于php - 在 laravel 中创建带有额外列的数据透视迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45774316/