不惑にしてまだ何者でもない者のブログ

Arduino関連、Raspberry Pi関連、プログラミング学習

paizaラーニング『PHP-Web入門編4:Eloquentでデータベースを操作しよう (全9回)』を受講してみた

2021-02-18 10:14:24 | paiza

『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');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
# /usr/local/bin/ 配下にcomposerを移動させて実行権限を付与
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の役割と効果

#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の音量小さいな?

認定証



学習ステータス





最新の画像もっと見る

コメントを投稿