Laravel 8 - 用户表中的两个外键

Posted

技术标签:

【中文标题】Laravel 8 - 用户表中的两个外键【英文标题】:Laravel 8 - two foreign key from the users table 【发布时间】:2021-10-25 01:44:57 【问题描述】:

我想创建两个人可以创建会议室的应用程序。 但我不知道如何在 Laravel 中制作模式。

我尝试这样创建:

Schema::create('appointments_tables', function (Blueprint $table) 
            $table->id();
            $table->unsignedBigInteger('user_id');
            $table->unsignedBigInteger('user_id2');
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); 
            $table->foreign('user_id2')->references('id')->on('users')->onDelete('cascade');      
            $table->datetime('start');
    );

这是正确的做法吗?

【问题讨论】:

如果房间里最多只能有两个人,这是正确的 @NadirAbbas 是的,只有两个人,所以我不需要另一张桌子。 :) 谢谢! ?????? 【参考方案1】:

是的,没错。

您也可以使用 artisan 命令“php artisan make:migration”。

以下是该命令帮助标志的详细信息:

$ php artisan -help make:迁移

说明:

创建一个新的迁移文件

用法:

make:migration [选项] [--]

参数:

name 迁移的名称

选项:

  --create[=CREATE]  The table to be created
  --table[=TABLE]    The table to migrate
  --path[=PATH]      The location where the migration file should be created
  --realpath         Indicate any provided migration file paths are pre-resolved absolute paths
  --fullpath         Output the full path of the migration

-h, --help 显示此帮助信息 -q, --quiet 不输出任何消息 -V, --version 显示此应用程序版本 --ansi 强制 ANSI 输出 --no-ansi 禁用 ANSI 输出 -n, --no-interaction 不问任何交互式问题 --env[=ENV] 命令应该运行的环境 -v|vv|vvv, --verbose 增加消息的详细程度:1 表示正常输出,2 表示更详细的输出,3 表示调试

【讨论】:

【参考方案2】:

您可以在存储日期的位置创建一个调用约会表,并在存储用户 ID 和约会 ID 的位置创建一个数据透视表调用约会用户,并且可以在数据透视表调用角色中添加一列。

更多信息请在 Laravel 文档中搜索多对多关系

【讨论】:

以上是关于Laravel 8 - 用户表中的两个外键的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE [HY000] Laravel 8 中的外键约束格式错误

在 Laravel 8 中获取“错误地通知外键约束”

两个外键,如何用 laravel eloquent 映射

验证来自 laravel 8 api 中两个以上表的用户

如何在 laravel 和 vue.js 中显示用户名而不是 id(外键)

渴望加载 Laravel 5 与两个外键的多对多关系