laravel可以在sql数据库服务器中创建表之间的关系吗?

roejwanj  于 2023-01-21  发布在  其他
关注(0)|答案(2)|浏览(107)

我有一个laravel项目工作正常,但我不能看到在sql服务器的关系。(其中我使用xampp)。
我希望laravel中的foreign-id是实际表中的foreign-id。它在laravel中运行良好,我希望它在实际的数据库服务器中也能运行。
这是我的模型,学生模型和迁移:

public function user() {
    return $this->belongsTo(User::class);
}
Schema::create('students', function (Blueprint $table) {
    $table->id();
    $table->string("username")->unique();
    $table->foreignId("user_id");
    $table->foreignId("course_id");
    $table->bigInteger("class_roll");
    $table->integer("year");
    $table->integer("semester")->nullable();
    $table->timestamps();
});

用户模型和迁移:
一个二个一个一个
在设计器视图中,students. user_id和www.example.com之间没有链接users.id:

6pp0gazn

6pp0gazn1#

您需要在迁移文件中显式定义外键约束。
可以对外键列使用foreign()方法来定义外键约束条件。例如,在“user_id”和“course_id”列上创建外键约束条件

Schema::create('students', function (Blueprint $table) {
    $table->id();
    $table->string("username")->unique();
    $table->foreignId("user_id")->constrained()->on('users');
    $table->foreignId("course_id")->constrained()->on('courses');
    $table->bigInteger("class_roll");
    $table->integer("year");
    $table->integer("semester")->nullable();
    $table->timestamps();
});
oaxa6hgo

oaxa6hgo2#

有很多更好的指南可以解释这一点,所以我会尽量保持简单,有两件事你需要了解数据库关系如何在laravel中工作:

**1-**您可以将数据库表连接为相互关联,这有很多好处,例如您可以级联删除数据。

你目前没有告诉mysql哪些表正在被连接,你可以从下面的stackoverflow看到一个更好的方法来做到这一点:laravel migration best way to add foreign key

**2-**您可以使用模型连接您的数据库表,这不会显示在MYSQL设计器的任何地方,因为这主要是代码库,这足以处理所有的数据处理之间的关系。

这部分你已经做了。

相关问题