43
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Laravelで「Base table or view not found: 1146 Table」エラーが出るときの対処法

Last updated at Posted at 2018-11-11

現象

参照しにいったテーブルが見つからないという内容のエラーです。

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'your_db.your_models' doesn't exist (SQL: select * from `your_models`)

解決法

プロジェクトのappディレクトリ配下にある「モデル名.php」のファイルを編集し、
使いたいテーブル名を指定してあげます。

your_project/app/your_model.php

<?php
namespace App;

use Illuminate\Database\Eloquent\Model;

class YourModel extends Model
{
    // 参照させたいSQLのテーブル名を指定してあげる
    protected $table = 'your_table';
}

※ モデル名はモデルをコマンドで作成したときに、定義しています。
以下の例でいうと「YourModel」がモデル名になります。

php artisan make:model YourModel

解説

公式ドキュメントによると、自分で命名したデータベースをLaravelに参照させたいときは、テーブル名をモデルファイル内で指定しなければいけないようです。

他の名前を明示的に指定しない限り、クラス名を複数形の「スネークケース」にしたものが、テーブル名として使用されます。

Laravel 5.6 Eloquent:利用の開始

参考

php - Base table or view not found: 1146 Table Laravel 5 - Stack Overflow

43
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?