9cubed
ブログ | Tailwind | Vite | Python | Node.js | Linux | PowerShell | その他 | 将棋ウォーズ | 歌の練習
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

新着一覧

  • SCSS のインストールVite
  • Tailwind CSS のプロジェクトの作成Tailwind
  • TypeScriptのプロジェクトの作成Vite
  • Flask のインストールと動作確認Python
  • 簡易Webサーバーの作成Python
  • pipeline で文章の生成Python
  • pipeline で文章の要約Python
  • 音声から文字起こしPython
  • Node.js のインストールNode.js
  • .ps1(PowerShellスクリプト)を実行可能にするPowerShell

アーカイブ

  • 2025/12
  • 2025/11
  • 2025/10
  • 2025/09
  • 2025/08

以前のカテゴリー一覧

  • 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.

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