当前位置: 首页 > 知识库问答 >
问题:

无法启动Laravel,我得到"基表或视图未找到"错误

龙欣德
2023-03-14

首先,我错误地回滚了2次迁移,然后运行了php artisan migrate命令,出现以下错误:

[Lightning\Database\QueryException]SQLSTATE[42S02]:找不到基表或视图:1146表“exercise1.categories”不存在(SQL:select*fromcategorieswhereparent\u id=0)[PDOException]SQLSTATE[42S02]:找不到基表或视图:1146表“exercise1.categories”不存在

然后我阻止了拉威尔。之后,当我运行启动Laravel的php artisan serve命令时,我得到了相同的错误。以下是我回滚的两个迁移:

1.

class CreateCategoriesTable extends Migration
    {

        public function up()
        {
            Schema::create('categories',function (Blueprint $table){
                $table->increments('id');
                $table->string('name');
                $table->text('parent_id');
                $table->timestamps();
        });
        }
        public function down()
        {
            Schema::dropIfExists('categories');
        }
    }

2.

class CreateArticlesTable extends Migration
    {
        public function up()
        {
            Schema::create('articles', function (Blueprint $table) {
                $table->increments('id');
                $table->string('title')->nullable(false);
                $table->longText('article')->nullable(false);
                $table->integer('user_id')->unsigned();
                $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
                $table->timestamps();
            });
        }
        public function down()
        {
            Schema::dropIfExists('articles');
        }
    }

请帮我解决这个令人沮丧的问题。所有答案都非常感谢,提前感谢。

共有3个答案

茹正初
2023-03-14

对我来说,发生此错误是因为laravel中涉及数据库查找的计划任务。通过从我的计划任务中注释laravel/app/控制台/Kernel.php中的查找,我能够再次迁移我的数据库。

司徒泰
2023-03-14

当您回滚这些迁移时,您已经删除了类别文章表。所以只需再次运行migrate命令:

php artisan migrate
卫弘图
2023-03-14

如果您遇到这个问题,如果它不是由迁移文件引起的,那么很可能是因为两个可能的原因。

  1. 如果包含查询不存在的表的查询,请检查ServiceProviders的引导函数。
  2. 检查是否创建了自定义辅助函数并在composer.json文件中自动加载该辅助函数。如果自定义助手函数包含查询不存在的表的查询,则会导致此错误。

由于ServiceProviders的引导函数和自动加载的自定义助手函数是在laravel启动时首先加载的,所以所有的php artisan命令都会生成基表或视图未找到错误。

此时,您应该注释掉那些查询不存在的表的查询,然后运行php artisan-service,然后运行php artisan-migrate。然后取消这些行的注释,保存它,一切都会正常工作。

正如@devk建议的那样,最好检查laravel日志文件,这些文件正好指向问题发生的地方。这让我找到了解决办法。为此,不要忘记打开调试模式

 类似资料:
  • Im my routes.php我有以下内容: 当我的数据库还没有表,我想进行php artisan迁移时,结果是:SQLSTATE[42S02]:找不到基表或视图:1146表“ae_dev.categories”不存在 我的迁移文件: 我认为Laravel托盘从routes.php调用类别,想做选择或某种想法,所以我想运行创建类别表的迁移,但上述错误是在... 我怎样才能解决这个问题?

  • 我在我的电脑上安装了homestead,然后我尝试通过本地域访问我的文件。但是当我尝试连接DB时,会显示这个错误。我也无法访问我的其他项目。我把一切都安排得很好。但我不知道为什么给我看这个错误。 注意:我使用的是Windows 8.1 这是我的设置代码: 亚马尔家园酒店 ip:“192.168.10.10” 内存: 2048 CPI: 1 提供者:virtualbox 授权:~/.ssh/id\u

  • 当我尝试使用Laravel 5将数据保存到mysql时,我得到了这个错误,其他形式和保存()方法工作正常,但这一个: 这是我的Controller存储方法: 这是我的模型: 我一定是忽略了一些非常明显的事情,因为我不明白为什么拉雷维尔会加上一个“S”这个词。这个表是cotizacion而不是cotizacions。 如何对此进行故障排除?

  • 我正在尝试使用spark sql运行一个基本的java程序 如果有人能给我指出一些在斯巴克-sql(斯巴克-2.1.1)上可以阅读的好材料,那也太好了。我计划使用火花来实现ETL,连接到MySQL和其他数据源。 异常在线程"main"org.apache.spark.sql.分析异常:未找到表或视图:;第1行pos 21;

  • 问题内容: 我在尝试使用Laravel 5将数据保存到mysql时收到此错误消息,其他形式和save()方法都可以正常工作,但是以下一种方法: 这是我的Controller存储方法: 这是我的模型: 我必须忽略一些确实很明显的原因,因为我无法理解Laravel为什么在表中添加cot而不是cotizacion。 我该如何解决? 问题答案: 我猜想Laravel无法确定您用于表名的单词的复数形式。 只

  • 问题内容: 我对laravel视图有问题,找不到路由函数,我做了作曲家dumpautoload但没有使用ArticleController.php InvalidArgumentException 问题答案: 当Laravel在您的应用程序中找不到视图文件时,就会发生这种情况。确保你有一个文件名为:或者你在目录中。 请注意,在调用时Laravel将执行以下操作: 对于Laravel,它将查找文件: