gpt4 book ai didi

Laravel 5.2 Entrust migrate 错误,无法添加外键约束

转载 作者:行者123 更新时间:2023-12-04 05:11:54 24 4
gpt4 key购买 nike

我为 User ACL 安装并配置了 Laravel 5.2,它工作正常我安装了zizaco/entrust运行此命令时打包 php artisan migrate (用于创建 rolespermissions 表等)出现以下错误

[Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table role_user add constraint role_user_user_id_foreign foreign key (user_id) references `` (id) on delete cascade on update cascade)

[PDOException] SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint



可能是什么原因 ?我错过了什么吗?我遵循了委托(delegate) site 的逐步指导方针

最佳答案

我修复了这个问题,在委托(delegate)迁移文件中,有 users缺少表名。见下一行

$table->foreign('user_id')->references('id')->on(' ')->onUpdate('cascade')->onDelete('cascade');



所以我改成了这个,

$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');



我添加了 users表名,问题已修复。

原因,为什么我会遇到这个问题?

config/auth.php文件,没有 'table'=>'users'提供者数组中提到的 key /对,见下文(这是默认值,表示安装新的 laravel 时)
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],

php artisan entrust:migration命令运行,它会拉出 users上面提供者数组中的表名,如果迁移文件中没有提到表,则关系设置为空。

$table->foreign('user_id')->references('id')->on('')->onUpdate('cascade')->onDelete('cascade');



所以,像这样在提供者数组中添加表。
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
'table'=>'users'
],

之后运行命令进行委托(delegate)迁移 php artisan entrust:migration这将生成正确的迁移文件。

关于Laravel 5.2 Entrust migrate 错误,无法添加外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com