我解决了这个问题,在委托迁移文件中,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'
中,提供者数组中没有提到密钥/对,见下文(这是默认设置,意味着安装了新的 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'
],
在运行委托迁移命令之后,php artisan entrust:migration
这将生成正确的迁移文件。