大家好,我是新来的,我有问题。 我为我的表构建迁移,但我不知道它是否正确。 我做模特工作。我的意思是工作机会,我的工作级别是模范的。 这就是它与模型之间的关系。
public function joblevel() {
return $this->belongsTo(JobLevel::class);
}
public function jobs() {
return $this->hasMany(Job::class);
}
我想进行迁移来连接它。我为
job
进行迁移,并为 joblevel
进行迁移。我可以制作另一个表,例如 job_joblevel
表制作外键吗?
return new class extends Migration {
public function up(): void {
Schema::create('joblevel_job', function (Blueprint $table) {
$table->unsignedBigInteger('joblevel_id');
$table->unsignedBigInteger('job_id');
$table->foreign('joblevel_id')
->references('id')->on('joblevels')
->onDelete('CASCADE');
$table->foreign('job_id')
->references('id')->on('jobs')
->onDelete('CASCADE');
});
}
public function down(): void{
Schema::dropIfExists('joblevel_job');
}
};
嗯,我在某个课程上看到了它,但他这样做是为了关系
belongsToMany
。我不知道这对于关系 belongsTo
和 hasMany
来说是个好选择。我不知道这对我的关系来说是正确的道路。我可以制作通过 2 个键连接到另一个桌子的桌子吗?
幸好我找到了答案。 我需要将外键放入模型作业中。
public function up(): void
{
Schema::table('jobs', function (Blueprint $table) {
$table->unsignedBigInteger('joblevel_id');
$table->foreign('joblevel_id')
->references('id')->on('joblevels')
->onDelete('CASCADE');
});
}
public function down(): void
{
Schema::table('jobs', function (Blueprint $table) {
$table->dropForeign(['joblevel_id']);
$table->dropColumn('joblevel_id');
});
}