LaravelでMySQLとの接続部分で困っています
Laravelでデータベースに接続を試みたところエラーが出ました。
エラーメッセージを見る限りテーブルがないよ、と言われているのはわかるのですが、確認するとちゃんとテーブルがありなぜエラーが出るのかわかってない状態です。
databaseはCREATE DATABASE で手動で作成
tableはphp artisan migrate
table内の情報はseedを使用
発生している問題・エラーメッセージ
Illuminate\Database\QueryException SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel_local.instructors' doesn't exist (SQL: select * from `instructors`)
該当のソースコード
controller
1namespace App\Http\Controllers; 2 3use App\Instructor; 4 5use Illuminate\Http\Request; 6 7class InstructorController extends Controller 8{ 9 //インストラクター一覧用コントローラー 10 public function index () 11 { 12 $instructors = Instructor::all(); 13 return view('Instructor',['instructors' => $instructors]); 14 } 15}
env
1DB_CONNECTION=mysql 2DB_HOST=127.0.0.1 3DB_PORT=3306 4DB_DATABASE= online_golf 5DB_USERNAME=root 6DB_PASSWORD=
databasephp
1'mysql' => [ 2 'driver' => 'mysql', 3 'url' => env('DATABASE_URL'), 4 'host' => env('DB_HOST', '127.0.0.1'), 5 'port' => env('DB_PORT', '3306'), 6 'database' => env('DB_DATABASE', 'online_golf'), 7 'username' => env('DB_USERNAME', 'root'), 8 'password' => env('DB_PASSWORD', ''), 9 'unix_socket' => env('DB_SOCKET', ''), 10 'charset' => 'utf8mb4', 11 'collation' => 'utf8mb4_unicode_ci', 12 'prefix' => '', 13 'prefix_indexes' => true, 14 'strict' => true, 15 'engine' => null, 16 'options' => extension_loaded('pdo_mysql') ? array_filter([ 17 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), 18 ]) : [], 19 ],
database
1mysql> show databases; 2+--------------------+ 3| Database | 4+--------------------+ 5| information_schema | 6| mysql | 7| online_golf | 8| performance_schema | 9| sys | 10+--------------------+
tables
1mysql> show tables; 2+-----------------------+ 3| Tables_in_online_golf | 4+-----------------------+ 5| failed_jobs | 6| instructors | 7| migrations | 8| password_resets | 9| users | 10+-----------------------+
table
1desc instructors; 2+--------------+-----------------+------+-----+---------+----------------+ 3| Field | Type | Null | Key | Default | Extra | 4+--------------+-----------------+------+-----+---------+----------------+ 5| id | bigint unsigned | NO | PRI | NULL | auto_increment | 6| created_at | timestamp | YES | | NULL | | 7| updated_at | timestamp | YES | | NULL | | 8| name | varchar(255) | NO | | NULL | | 9| calendar_Id | varchar(255) | NO | | NULL | | 10| calendar_Key | varchar(255) | NO | | NULL | | 11| zoom_url | varchar(255) | NO | | NULL | | 12+--------------+-----------------+------+-----+---------+----------------+
試したこと
https://qiita.com/igz0/items/d14fdff610dccadb169eこちら参考に
モデルのInstructor.php に
protected $table = 'instructors';を記入しましたがエラー内容は変わりませんでした
次に元々用意されているusersテーブルに
protected $table = 'users'で接続するのを変えたところエラーは出ませんでしたが値は取り出せませんでした。
補足情報(FW/ツールのバージョンなど)
使用ツール
PHP 7.4.15
Laravel Installer 3.0.1
mysql Ver 8.0.23
使用環境
https://qiita.com/ucan-lab/items/5fc1281cd8076c8ac9f4
こちらの記事を参考にdockerでの環境構築をしました。
記事を見る限り使用されるバージョンはlocalhostが優先されるそうです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/06 06:59