php - 迁移 Laravel 无法同时创建主键和外键
问题描述
我试图在一次迁移中在主键中创建一个外键。
这适用于 Laravel 5.7。我尝试了不同的方法来尝试实现我的目标。这是我的最终代码。
Schema::create('teachers', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->integer('user_id')->unsigned()->primary();
$table->timestamps();
});
Schema::table('teachers', function($table) {
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
});
它使用“user_id”作为主键创建一个普通表,但它不是外键。
解决方案
试试这个代码
Schema::create('teachers', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
推荐阅读
- javascript - 汇总插件开发:如何防止其他插件处理我的插件已经处理的文件
- node.js - Facebook OAuth 重定向显示页面列表
- highcharts - 在角度应用程序中使用 highcharts 时,有什么方法可以突出显示网络图中搜索的节点
- python - 使用 BeautifulSoup 获取标签和文本
- mysql - 如何在 mysql 上导入“example.sql”文件以更新现有记录?
- python - 安装 nbconvert 后的 jupyter notebook 不断向我显示验证错误
- facebook - 连接 Facebook 帐户并奖励用户的操作
- javascript - 无法检索 Javascript 变量的 API 数据
- java - 从 json 响应创建一个 java 模型
- javascript - 如何将 mongodb 的结果显示到 ejs 文件中的特定 div 中?