首先我错误地回滚了2次迁移,然后我跑了php artisan migrate
命令,我收到以下错误:
[Illuminate\Database\QueryException]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'exercise1.categories' doesn't exist (SQL: select * from
categories
where parent_id
= 0)
[PDO异常]
SQLSTATE[42S02]:未找到基表或视图:1146 表“exercise1.categories”不存在
然后我停止了 Laravel。之后,当我运行php artisan serve
启动 Laravel 的命令我得到同样的错误。
以下是我已回滚的 2 个迁移:
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');
}
}
请帮助我解决这个令人沮丧的问题。非常感谢所有答案,提前致谢。
如果您遇到此问题并且不是由迁移文件引起的,那么很可能是由于 2 个可能的原因而发生的。
- Check 服务供应商' 引导函数,如果它包含正在查询不存在的表的查询。
- 检查您是否已创建自定义辅助函数并在composer.json 文件中自动加载该辅助函数。如果自定义帮助器函数包含正在查询不存在的表的查询,则会导致此错误。
由于 ServiceProviders 的引导函数和自动加载的自定义帮助函数在 Laravel 启动时首先加载,所以php artisan
命令将生成“未找到基表或视图”错误。
此时,您应该做的是注释掉那些正在查询不存在的表的查询并运行php artisan serve
然后运行php artisan migrate
。然后取消注释这些行,保存它,一切都会正常工作。
正如 @devk 所建议的,最好检查 laravel 日志文件,它准确地指出了问题发生的位置。它引导我找到解决方案。
为此,不要忘记打开调试模式。 https://stackoverflow.com/questions/37535315/where-are-logs-located
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)