###問題点
http://localhost:8000/helloアクセスするとpeopleテーブルは作成したのにpeopleテーブルが無いとエラーが出てしまいます
発生している問題・エラーメッセージ
、SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravelapp.people' doesn't exist (SQL: select * from people)
HelloController
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\Support\Facades\DB; class HelloController extends Controller { // を追加 public function index(Request $request) { $items = DB::select('select * from people'); return view('hello.index', ['items' => $items]); }
web.php
Route::get('hello', 'HelloController@index'); Route::post('hello', 'HelloController@post');
.env
DB_CONNECTION=sqlite DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=C:\Users\n\Desktop\laravelapp\database\database.sqlite DB_USERNAME=root DB_PASSWORD=
試したこと
.envのDB_DATABASE=の欄はdatabase.sqliteが置かれているパスに設定しました。
.database.phpの設定も'default' => env('DB_CONNECTION', 'sqlite'),このようにしております。
.laravelappはプロジェクト名
補足情報(FW/ツールのバージョンなど)
OS:ウインドウズ
xampp
DB_CONNECTION
DB_DATABASE
だけ残しても現象同じですか?
またエラーからすると「laravelapp」という名前のDBに接続しに行こうとしているようですが、プロジェクト名ですかね?
DB_CONNECTION
DB_DATABASE残しましたが同じエラーでした。
laravelappはプロジェクト名です!
残す・・というかほかのDB関係の設定を # でコメントアウトですね。
そのご、「php artisan migrate」を実行してみてください。
>'default' => env('DB_CONNECTION', 'sqlite'),
ちなみにですが、env()の第2引数は.envから取得できなかった時のデフォルト値なので、.envにきちんと設定してあれば対応加える必要はありません。
失礼しました勘違いでした(;´・ω・)
コメントアウト後にmigrateしたらちゃんとpeopleテーブル(画像の内容)が表示されました!
DB BROWSR FOR SQLITEを使用していたのですがちゃんとテーブルが作成されていなかったということでしょうか?
変更内容(新規含む)migrateすることで反映されると思って良いかもしれません(ちょっとマイグレーション関係には詳しいわけではないですが、そのような回答・アドバイスを見たことがあります)
なるほどです。
新しくテーブル作成したらmigrateを心がけてみます!
悩んでいたのでありがとうございます。
というより「データベース設定に変更が起きたら」ですかね。
そのあたりも含めて備忘録的に自身で回答投稿して自己解決とすると
同じ問題をかかえた誰かの参考になるかもしれません。
回答1件
あなたの回答
tips
プレビュー