Laravel 10 入門トップページ


目次

  1. プロジェクトを作成する
  2. データベースファイルを作成する
  3. Visual Studio Code を設定する
  4. .env を編集して初期設定する
  5. タイムゾーンと言語を設定する
  6. Webサーバを起動して終了する
  7. マイグレーションファイルを生成する
  8. テスト用データを設定する
  9. モデルを作成する
  10. コントローラを作成する
  11. ルートを定義する
  12. データベースからデータを取り出す
  13. トップページにリンクを設置する
  14. ビューを使ってレコードを表示する
  15. コメントを個別に表示するページを作成する
  16. コメント投稿機能を実装する
  17. 投稿内容を検証する
  18. 投稿内容を編集する
  19. 投稿コメントを削除する
  20. テストの自動化を実現する
  21. テストカバレッジを計測する
  22. 複数のLinuxコマンドを実行し,履歴からも実行する
  23. ビューをレイアウト化する
  24. Bootstrap を導入する
  25. SQLite を操作する
  26. フェイカでシーダを拡張する
  27. ページネーションを作る
  28. シーダに登録日時と更新日時を追加する
  29. 一覧表示を更新日時の降順にする
  30. フラッシュメッセージを表示する
  31. スタイルシートでデザインを整える

Laravel によるコメント掲示板の開発

SQLite を操作する

Laravel ではバックエンドのデータベースに MySQL や SQL Serve, PostgraSQL, SQLite などさまざまなデータベース管理システム (DataBase Management System: DBMS) を利用できます.どのデータベース管理システムを利用するかという設定は .env という設定ファイルに記載します.これによりどのデータベースに接続しているかを利用者が意識することなく,Laravel が細かな面倒を見てくれます.なお,データベースサービスに関する詳細な設定は config/database.php 設定ファイルにあります.

しかしながら,システムの開発中やテスト中にデータベースのテーブルに格納されたデータを直接確認する必要性が生じる事も少なくありません.ここでは,SQLite の操作方法を簡潔に説明します.なお SQLite で全文検索システムを開発することは難しいかもしれません.MySQL などの高機能な DBMS を使えば日本語全文検索システムも開発できます

目次に戻る

comment_app プロジェクトのデータベースを覗いてみる

途中まで開発が進んでいる comment_app プロジェクトのデータベースを直接覗いてみよう.データベースのテーブルは php artisan migrate コマンドを実行した段階で database/database.sqlite ファイルに生成されています.また,php artisan db:seed コマンドによってテストデータがテーブルに投入されているはずです.

SQLite でデータベースを開くには,database ディレクトリに移動して sqlite3 データベースファイル名 コマンドを実行します.データベースへの接続を終了するには .exit を入力します.

vagrant@ubuntu2204 comment_app $ pwd ⏎
/home/vagrant/Documents/laravel/comment_app
vagrant@ubuntu2204 comment_app $ ls ⏎
README.md  bootstrap      config        phpunit.xml  routes   vendor
app        composer.json  database      public       storage  vite.config.js
artisan    composer.lock  package.json  resources    tests
vagrant@ubuntu2204 comment_app $ cd database/ ⏎
vagrant@ubuntu2204 database $ ls ⏎
database.sqlite  factories  migrations  seeders
vagrant@ubuntu2204 database $ sqlite3 database.sqlite ⏎
SQLite version 3.38.2 2022-03-26 13:51:10
Enter ".help" for usage hints.
sqlite> .exit ⏎
vagrant@ubuntu2204 database $

目次に戻る

SQLite の主要コマンド

SQLite の主なコマンドは次のとおりです.

コマンド実行例意味
.help.helpヘルプ画面を表示する
.tables.tablesテーブルの一覧を表示する
.schema.schema全てのテーブルの定義を表示する
.schema テーブル名.schema comments指定したテーブルの定義を表示する
.headers ON/OFF.headers ON列名の表示/非表示を切り替える
.exit.exitSQLite を終了する

実際にテーブルの一覧を確認して,comments テーブルの定義を確認してから終了させよう.

vagrant@ubuntu2204 database $ ls ⏎
database.sqlite  factories  migrations  seeders
vagrant@ubuntu2204 database $ sqlite3 database.sqlite ⏎
SQLite version 3.38.2 2022-03-26 13:51:10
Enter ".help" for usage hints.
sqlite> .tables ⏎
comments                migrations              personal_access_tokens
failed_jobs             password_reset_tokens   users
sqlite> .schema comments ⏎
CREATE TABLE IF NOT EXISTS "comments"
(
    "id" integer primary key autoincrement not null,
    "title" varchar not null, "body" text not null,
    "created_at" datetime,
    "updated_at" datetime
);
sqlite> .exit ⏎
vagrant@ubuntu2204 database $

目次に戻る

SQL を使って検索する

SQL の書式は神戸学院大学経営学部の講義「データベース」で説明したものがほとんど利用できるはずです.なお,SELECT 等の SQL コマンドは小文字で入力しても構いません.

vagrant@ubuntu2204 database $ sqlite3 database.sqlite ⏎
SQLite version 3.38.2 2022-03-26 13:51:10
Enter ".help" for usage hints.
sqlite> .tables ⏎
comments                migrations              personal_access_tokens
failed_jobs             password_reset_tokens   users
sqlite> SELECT * FROM comments; ⏎
1|最初のコメント|最初のコメントです!||
2|2つ目|2つ目のコメントです!||
3|<三個目>のコメント|シーダによってテストデータを設定します.||
sqlite> .headers on ⏎
sqlite> SELECT * FROM comments; ⏎
id|title|body|created_at|updated_at
1|最初のコメント|最初のコメントです!||
2|2つ目|2つ目のコメントです!||
3|<三個目>のコメント|シーダによってテストデータを設定します.||
sqlite> SELECT id, title FROM comments ORDER BY id DESC; ⏎
id|title
3|<三個目>のコメント
2|2つ目
1|最初のコメント
sqlite> SELECT COUNT(*) AS cnt FROM comments; ⏎
cnt
3
sqlite> SELECT title, body FROM comments WHERE id = 2; ⏎
title|body
2つ目|2つ目のコメントです!
sqlite> SELECT * FROM comments WHERE title LIKE "%目%"; ⏎
id|title|body|created_at|updated_at
2|2つ目|2つ目のコメントです!||
3|<三個目>のコメント|シーダによってテストデータを設定します.||
sqlite> SELECT * FROM comments WHERE title LIKE "%コメント%"; ⏎
id|title|body|created_at|updated_at
1|最初のコメント|最初のコメントです!||
3|<三個目>のコメント|シーダによってテストデータを設定します.||
sqlite> .exit ⏎
vagrant@ubuntu2204 database $

目次に戻る