WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
Builder::first()メソッド

Builder::first()メソッド

このエントリーをはてなブックマークに追加

Illuminate\Database\Query\Builder::first()メソッドは、DBクラスやModelクラスのメソッドチェーンとして使用します。

Builder::first()

Builder::first()メソッドは、クエリを発行し、最初の結果を取得します。引数はオプションで、表示するカラム名を配列で指定します。デフォルトは全カラムです。

基本例

//Fluentクエリービルダー
DB::table('users')->first();

//Eloquent ORM
User::first();

getとの違い

getメソッドは、複数のオブジェクトを取得するのに対して、firstメソッドは、オブジェクトを一つ(最初のオブジェクト)しか取得しません。ですので、引き渡したデータの表示方法には明確な違いがありますので、注意してください。

getで一つの値を取得した場合

Route::get('user',function(){
//id番号が1のデータを取得
$sql=DB::table('users')->where('id','=',1)->get();
//取得したデータの表示
echo $sql[0]->email;
});

firstで値を取得した場合

Route::get('user',function(){
//id番号が1のデータを取得
$sql=DB::table('users')->where('id','=',1)->first();
//取得したデータの表示
echo $sql->email;
});
  • 上記に、getとfirstで同じようなクエリを生成してみました。取得したデータは両方ともid番号1のデータですが、getとfirstでデータの表示方法が違うのがわかりますでしょうか。getの場合は複数のオブジェクトを抽出したのですが、結果として一つしかデータがなかったのに対し、firstの場合は元々データの数に関係なく、一つのデータ(最初のデータ)しか取得しないのです。ですので、データの表示方法に違いが生じます。

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です