簡體   English   中英

QueryException:常規錯誤:1沒有這樣的表:{table_name}(SQL:從“ {table_name}”中選擇*)

[英]QueryException: General error: 1 no such table: {table_name} (SQL: select * from “{table_name}”)

  • Laravel版本:5.7
  • PHP版本:7.2
  • 數據庫驅動程序:sqlite
  • 數據庫:內存

在PHPUnit上進行的所有測試都可以正常工作。 但是,當我在AppServiceProvider添加View::share ,所有PHPUnit測試都失敗了。

AppServiceProvider.php

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        \View::share('categories', \App\Models\Category::all());
    }
}

錯誤

Illuminate \\ Database \\ QueryException:SQLSTATE [HY000]:常規錯誤:1沒有這樣的表:Categories(SQL:select * from“ categories”)

我已經在所有測試中使用了RefreshDatabase

請指導我,我該如何解決。 我應該在Laravel應用中的何處調用View::share ,所以所有測試都應該通過。

發生這種情況的原因可能是數據庫甚至不存在,並且提供程序啟動假定數據庫/表已經啟動並正在運行。

通過包裹將其固定得更多

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
       if(\Schema::hasTable('categories'){
        \View::share('categories', \App\Models\Category::all());
       }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM