最近在試著將原生 PHP 舊專案的資料庫遷移到 Laravel 8.x 上發生一個很奇怪現象,舊的資料庫中管理者資料使用 admin 資料表,於是我直接使用 admin 資料表,並沒有建立 migration ,直接在 Model 中指定 table 為 admin。

結果發生很怪的現象,update 更新功能正常,create 新增功能發生錯誤問題,出現 SQLSTATE[42S02]: Base table or view not found: database.admins 找不到 admins 的錯誤訊息。

於是在資料庫中建立一個 admins 資料表,即使在 Model 將 protected $table =”admin” 不使用 admins,這時候,create 新增功能就恢復正常,且資料被新增在 admin 資料表中,並非在 admins 資料表。

按照官方文件說明,不是只要在 Model 裡面設定成 protected $table =”admin” 指定資料表名稱嗎?? 還是說一定要存在著相同 複數(+s) 的資料表??

最後修改日期: 2021 年 1 月 8 日