このページは、PHPのフレームワーク「FuelPHP」の学習中の僕がメモとして残しているものです。内容に間違いがあればご連絡いただけると幸いです。
FuePHPを使ってデータベースのテーブルをJoinしたい場合は、Query_Builder_Selectクラスのjoin()メソッドと、on()メソッドを使います。
その使い方について解説します。
join()メソッドの書き方
join()メソッドの第一引数には「結合したいテーブル名」、第二引数には「結合方法」を指定します。
結合方法とは「LEFT」とか「RIGHT」とかです。
on()メソッドの書き方
on()メソッドには結合のために比較するカラム名と演算子を指定します。
実際のコードサンプル
これは実際に僕がFuelPHPで作った本のレビューサイトからコードを抜粋したものです。
Modelの内容
public function get_reviews($book_id){
$query = DB::select()->from('reviews');
$query->where('book_id', '=', $book_id );
$query->join('users','LEFT' );
$query->on('reviews.user_id', '=', 'users.id' );
$result = $query->execute()->as_array();
return $result;
}
上のサンプルではreviewsテーブルと、usersテーブルをユーザーIDで結合しています。
理由はusesrテーブルに入っているユーザー名が欲しかったためです。
reviewsテーブルには本のレビュー情報が入っていますが、レビュー者の情報はユーザーIDしかないため、画面にレビュー者の名前を表示することができません。
そのため、上のようにusesrテーブルと結合してユーザー名を引っ張ってきています。
ちなみに上のコードによって発行されるSQLは次のようになります。
SELECT * FROM reviews LEFT JOIN users ON reviews.user_id = users.id where book_id = 本のID;
なんとなく使い方がわかりましたか?
FuelPHPで、テーブルをJoinしたい場合はjoin()メソッドと、on()メソッドを使うということを覚えておきましょう!
ちなみに公式リファレンスはこちらです。
参考
Query Builder Select クラスFuelPHPドキュメント
尚、FuelPHPについてもっと知りたいという人は以下の本がおすすめです。
(2024/11/21 16:45:51時点 Amazon調べ-詳細)