laravelのEloquentについて調べてみた

2018年9月24日laravel, PHP, フレムワーク


Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 86

Notice: Trying to access array offset on value of type bool in /var/www/html/wordpress/wp-content/plugins/internal-link-building-plugin/internal_link_building.php on line 105
laravelで使われているファザードについて調べてみた
laravel クエリビルダについて調べてみた
laravelでのupdateOrCreateメソッド
laravel でのconfigからパラメータ取得
php artisanコマンドについてまとめてみた
laravel 導入時に躓いた点
laravel 5.6でログインページがみれない(2)
laravel 5.6でログインページがみれない(1)

#* 0 *#

Eloquentとは

  • データベースとモデルのオブジェクトを対応させるためのもの
  • Object-relational mapping (ORM)
  • テーブル中のデータを取り出すことや、さらに新しいレコードを追加することもできます。

Eloquentモデルのプロパティ

  • table:処理するテーブルの指定
  • fillable:複数代入させるかどうか
  • guarded:複数代入させないカラム

Eloquentモデルのメソッド

  • find(): 主キーをもとに1レコード取得
  • first():該当する最初の1レコード取得
  • all():全レコード取得
  • get():指定した条件をもとに全レコード取得

Model生成時の命名規則

  • データベースのテーブル名(複数形)例:Users
  • モデル名(単数形)例:User
php artisan make:model User

モデル名が異なる場合は、

protected $table = 'other_name';

で指定。

オブジェクを返すメソッド

複数の結果を取得するallgetのようなEloquentメソッドは、Illuminate\Database\Eloquent\Collectionインスタンスを返します。CollectionクラスはEloquent結果を操作する多くの便利なクラスを提供しています。

https://readouble.com/laravel/5.3/ja/eloquent.html

DBファザードは使わない

Eloquentモデルを使って、データを取ってくるようにする。
Eloquent 結果を操作するクラスを使って必要な情報を取得するようにする。

$userList = DB::table('Users')
          ->where('flag', 1)
          ->get();
$userList = User->select()
                ->whre('flag',1)
                ->get();