9cubed
ブログ | PHP | JavaScript | TypeScript | Vue.js | Laravel | Tailwind | Vite | Python | MariaDB | SQLite | Node.js | Linux | PowerShell | Docker | Git | Web | その他
Webサーバー講座

第27回 Laravelでデータベースの操作

公開日:2021-04-29
更新日:2021-04-30

1. 概要

Laravelでデータベースの操作をする方法について説明しています。
環境は前回と同じものを使います。

通常データベースの操作はSQLを使って行いますが、
Laravelでデータベースの操作を行う場合、
Eloquentと言うORM(ORM:Object-relational mapping)を使用します。

ORMは、オブジェクトとテーブルの関連付けをして、
SQLを使わずに、オブジェクトを操作して、データベースの操作を行います。

2. 動画



3. モデルの作成

php artisan make:model のモデル名
 
(例)
php artisan make:model Article

テーブル名は複数形にしますが、モデル名は単数形します。
コマンドを実行すると、app/Models 配下にモデルが作成されます。

4. 全データの取得

// データの取得
$articles = \App\Models\Article::all();

// 表示
foreach ($articles as $article) {
	var_dump($article->id);
	var_dump($article->title);
	var_dump($article->body);
}

5. SQLの出力

DBの操作を行う前に次のコードを実行しておくと、
SQLが出力されるようになります。
DB::listen(function ($query) {
	var_dump($query->sql);
});
アプリ全体で常にSQLを出力したい場合は、
app/Providers/AppServiceProvider.php の boot() に書いてください。

6. 指定したIDのデータの取得

$article = \App\Models\Article::find(1);

7. データの更新

$article->title = 'abc';
$article->body  = 'def';
$article->save();

8. データの削除

$article->delete();

9. データの追加


9. 1 モデルに設定可能なプロパティの指定

モデルに $fillable と言うプロパティを追加して、設定可能なプロパティを指定します。
protected $fillable = ['title', 'body'];

9.2. モデルの生成

コンストラクタに連想配列で初期値を指定します。
余分な値は、$fillable によってはじかれます。
$article = new \App\Models\Article([
	'title' => 'title 1', 
	'body'  => 'body 1',
	'aaa'   => 'aaa',
	'bbb'   => 'bbb',
]);

9.3. データの追加

データの更新と同じく save() を呼ぶだけです。
$article->save();

10. 検索条件を指定してデータの取得

$article  = \App\Models\Article::where('id', ">=", 1)->first();
$articles = \App\Models\Article::where('title', 'like', '%test%')->get();
$articles = \App\Models\Article::where('id', ">=", 1)->select(['title', 'body'])->orderBy('id', 'desc')->get();
where() や select() などの戻り値は、
Illuminate\Database\Eloquent\Builder になるため、
データを取得する際には、
all() や find() の代わりに、get() や first() を使う必要があります。

YouTube X

新着一覧

  • async、awaitJavaScript
  • Promise についてJavaScript
  • パッケージの管理Node.js
  • v-model(双方向バインディング)Vue.js
  • VS Code で GitHub を使ったソース管理Git
  • computed(再計算)Vue.js
  • watchDebounced(値の監視)Vue.js
  • watch(値の監視)Vue.js
  • change イベントVue.js
  • v-memoVue.js

アーカイブ

  • 2026/03
  • 2026/02
  • 2026/01
  • 2025/12
  • 2025/11
  • 2025/10
  • 2025/09
  • 2025/08
  • /00

以前のカテゴリー一覧

  • CakePHP3
  • CentOS7
  • HTML・CSS・JavaScript
  • Haskell
  • JavaScript
  • Kotlin
  • Laravel5
  • PHP
  • Python
  • Ruby
  • RubyOnRails5
  • TypeScript
  • Vue.js
  • Webサーバ講座
  • Webプログラミング講座
  • jQuery
  • linux
  • パソコン講座
  • ブログ
  • プログラミング講座
  • メモ帳作成講座
  • 数学

Copyright © 9cubed. All Rights Reserved.

プライバシーポリシー 利用規約
▲