『PHP-Web入門編4:Eloquentでデータベースを操作しよう (全9回)』
なんだか知らないけど、今回のレッスンでは、
ORマッパー「Eloquent」なるものを使ってデータベースを操作することになるらしい。
※ ORM:オブジェクト関係マッピング(Object-relational mapping)
確かに、PHP内にSQL分を書いてデータベースを操作するのは、ちょっと面倒くさい感じがするから、
楽になるのはいいことだな!ちょっと楽しみだ!!😊
チャプター1でEloquentのインストールに関するサイトが紹介されているが、
「Composerでilluminate/databaseパッケージを取得する」ってのがよく分からなかったので、
ググってみたところ、どうやら先にComposerなるものをインストールする必要があるらしい。
Composerのインストール方法については、
公式サイトを参照すればいいんだろうけど、
以下のサイトが分かりやすかった。日本語だし。
自分の環境だとUbuntuだから、以下のコマンドを実行する。
# composerインストール php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # /usr/local/bin/ 配下にcomposerを移動させて実行権限を付与php composer-setup.php php -r "unlink('composer-setup.php');" sudo mv composer.phar /usr/local/bin/composer # 動作確認sudo chmod +x /usr/local/bin/composer composer -V |
これでおそらく、「Composerでilluminate/databaseパッケージを取得する」に書いてあるコマンドが実行できるようになったかな。
composer require illuminate/database |
よし、ちゃんとインストールできたみたいだ。
う〜む、だけど、なぜEloquentをインストールしたいのに、illuminate/databaseなんだろう?
ん?Eloquentを使うプロジェクトごとにインストールして使うのか?
メモ
#01:Eloquentの役割と効果
- Eloquent:データベースのレコードをPHPのオブジェクトに割り当てる機能を持ったライブラリ。
- Eloquentを使うと、データベースのレコードをオブジェクトとして扱えるようになり、SQL(エスキューエル)を書かなくても、PHPのコードでデータベースが操作できる。
- Laravel(Webアプリケーションフレームワーク)で採用
- Eloquentのインストール
- 素のPHPでEloquentを使う(illuminate/databaseパッケージの単体利用)
https://akamist.com/blog/archives/1041 - 参考になるWebページ
- - Eloquent をおさらい - Qiita
https://qiita.com/shosho/items/5ca6bdb880b130260586 - - Eloquentをライブラリとして使ってみた(Laravel ORM)
株式会社インターエデュ・ドットコム
https://corporate.inter-edu.com/developper/1457 - - Eloquentのちょっと進んだ使い方
株式会社インターエデュ・ドットコム
https://corporate.inter-edu.com/developper/1476 - - Eloquent ORMについてなにも知らなかった(1) - 基本的な使い方編 - - zuckey blog
https://blog.zuckey17.org/entry/2018/01/14/214919 - - Eloquent:利用の開始 5.6 Laravel
https://readouble.com/laravel/5.6/ja/eloquent.html - - Eloquent: Getting Started - Laravel - The PHP Framework For Web Artisans
https://laravel.com/docs/5.6/eloquent
- - Eloquent をおさらい - Qiita
#02:Eloquentでデータを表示しよう
- Eloquentのインストール手順$ composer require illuminate/database
- データベースに接続する
require_once './vendor/autoload.php'; $db = new Illuminate\Database\Capsule\Manager; $db->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'mydb', 'username' => 'root', 'password' => '' ]); $db->setAsGlobal(); $db->bootEloquent(); |
- クラスを定義する
class Player extends Illuminate\Database\Eloquent\Model { } |
※ なるほど〜😯 Illuminate\Databaseの中に、Eloquentがあるんだね!😉
#03:Eloquentでデータベースを使ってみよう - いろんな読み出し
- 全てのデータを取り出す:以下の2通り$players = Player::all();$players = Player::select('*')->get();
- 条件に一致したデータだけを取り出す$players = Player::where('level', '>=', 5)->get();
- 指定したidのデータを取り出す$player = Player::find(1);
#04:Eloquentでデータベースを使ってみよう - 追加・更新・削除
- Eloquentで、データを追加する
$player = new Player;
$player->name = '霧島1号';
$player->level = 1;
$player->job_id = 1;
$player->save(); - Eloquentで、データを更新する
$player = Player::find(11);
$player->level += 1;
$player->save(); - Eloquentで、データを削除する
$player = Player::find(11);
$player->delete();
※ やっぱり追加だけできないな?😟
#05:Eloquentでテーブルを連結してデータを取り出す
- Eloquentでテーブルを連結する
class Player extends Model {
public $timestamps = false;
public function job() {
return $this->belongsTo('Job');
}
} - 連結したテーブルのデータを表示する
job->job_name ?>
↓後は、具体例や応用
#06:特定のプレイヤーを表示する - その1
#07:特定のプレイヤーを表示する - その2
チャプター7の演習課題、説明が足りなすぎる!!😡
#08:特定職業のプレイヤーインデックスを表示する - その1
#09:特定職業のプレイヤーインデックスを表示する - その2
なんだかチャプター9の音量小さいな?
※コメント投稿者のブログIDはブログ作成者のみに通知されます