Illuminate \ Database \ QueryException with message' SQLSTATE [42S02]:找不到基表或视图:1146表' test.people'不存在

时间:2017-09-13 06:51:01

标签: laravel

我做了一个名为人的迁移,而我想导入数据使用修补程序然后错误显示我做了一个名为人的迁移,而我想导入数据使用修补程序然后错误显示Illuminate \ Database \ QueryException with message' SQLSTATE [ 42S02]:未找到基准表或视图:1146表' test.people'不存在(SQL:selec

2 个答案:

答案 0 :(得分:1)

如果未正确创建数据库表,则可能导致此错误。 您必须首先创建模型和迁移文件。

要创建它们,您可以运行此命令(例如):

 php artisan make:model People -m

然后,在People模型类和迁移文件中的所有配置之后 - 运行:

php artisan migrate 

这将在数据库中创建所有迁移表。 附:不要忘记检查.env文件中是否有正确的数据库名称。

...
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=<your_database_name>
DB_USERNAME=<your_username>
DB_PASSWORD=<your_password>
 ...

答案 1 :(得分:0)

应该确保他们使用什么模型名称来创建模型,以及即将出现的错误。 LARAVEL命名约定将表名以“ s”结尾的“ s”加起来,例如,如果您创建一个名称为“ dummy_project”的模型,并且您具有表“ dummy_project”,则它将“ s”添加到最后,如果您在修补程序中运行App \ dummy_project,它将产生错误:

*带消息“ SQLSTATE [42S02]”的Illuminate / Database / QueryException:未找到基表或视图:1146表'tutorial.dummy_projects'不存在(SQL:从dummy_projects中选择*) '*

我们需要做的就是将以下代码行添加到模型中: 受保护的$ table ='table_name'; ===说明===

如果您的表名称为'dummy_project',并且您创建的模型名称也为'dummy_project',则模型中的代码应如下所示: *

**<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class dummy_project extends Model
{
    **protected $table = 'dummy_project';**
}**

* 请记住,型号名称可以与表名称不同,但是“ protected $ table = “ table_name” ”应始终引用数据库中的相关表名!