Laravelエラー: SQLSTATE[42S02]: Base table or view not found: 1146
ローカル環境でdockerでLaravel8でMySQLとの接続してadminテーブルの登録処理を実装してます。
■■Laravel8でMySQLとの接続エラーで困っています!!
発生している問題・エラーメッセージ
LaravelでデータベースのSelectは問題なく接続できるが、
テーブル更新でエラーが発生します。
Illuminate\Database\QueryException SQLSTATE[42S02]: Base table or view not found: 1146 Table 'app_db.posts' doesn't exist (SQL: select count(*) as aggregate from `posts` where `login_id` = rrr090788) A table was not found You might have forgotten to run your migrations. You can run your migrations using php artisan migrate. Pressing the button below will try to run your migrations.
該当のソースコード
AdminController
1class AdminController extends Controller 2{ 3 public function register(Request $request){ 4 // public function register(AdminRegistRequest $request){ 5 6 $validated = $request->validate([ 7 'login_id' => 'required|unique:posts|max:500', 8 'name' => 'required', 9 'password' => 'required', 10 'note' => 'nullable|string|max:500', 11 ]); 12 13 $this->adminService->registAdmin($request->all()); 14 return redirect('/admin/admin'); 15 } 16}
AdminService
1use App\Models\Admin; 2 3class AdminService 4{ 5 public function registAdmin(array $values, Admin $admin=null){ 6 $request = collect($values); 7 8 //DB更新 9 // $admin = new Admin(); 10 $model = new Admins(); 11 // $model = $admin?:new Admins(); 12 $model->login_id = $request->get('login_id'); 13 $model->name = $request->get('name'); 14 if($request->get('password')){ 15 $model->password = bcrypt($request->get('password')); 16 } 17 $model->note = $request->get('note'); 18 $model->save(); 19 } 20}
Admin
1class Admin extends Authenticatable{ 2 3 /** @var テーブル名 */ 4 protected $table = 'tbl_admin'; 5} 6
試したこと
同一テーブルからデータ取得は可能なので、DB設定は問題ないことが確認できました。
AdminService
1use App\Models\Admin; 2 3class AdminService 4{ 5 public function getAdminQuery(array $conditions){ 6 7 $adminQuery = Admin::select(); 8 $id = 1; 9 10 //条件指定 11 $adminQuery = $adminQuery->where(function ($query) use ($id) { 12 if ($id) { 13 $query->orWhere('id', '>=', $id); 14 } 15 }); 16 17 return $adminQuery; 18 } 19}
migrate
1$ php artisan migrate 2Nothing to migrate. 3 4$ php artisan migrate:status 5でマイグレーションの確認をしたら全てYesになっている。 6困りました。
Admin
1class Admin extends Authenticatable{ 2 3 /** @var テーブル名 */ 4 protected $table = 'admins'; 5} 6 7単数形(tbl_admin)から複数形(admins)にしましたが、同じく駄目でした。
補足情報(FW/ツールのバージョンなど)
使用ツール
PHP 8.0
Laravel 8.5
mysql Ver 8.0
使用環境
dockerでローカル開発環境構築をしました。
回答1件
あなたの回答
tips
プレビュー