ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

ねむーいん

最近サボリがちなブログ。。。(´・ω・`)


本日覚えたことをメモしておこう。


ちゃんとした記事にするのはまた今度。

覚えたことメモ

  • cakephpのHashクラス
    • sqlの結果をループ無しで操作できた!便利!(°∀° イイワァ
  • cakephpでのデータベース結合
    • belongsToと、hasOneの操作。でもあんまし理解はできなかったの・・・(´・ω・)
    • 結局SQLを直書きしちゃったった。ちなみにメソッドはModelで"$this->query()"を使いました。
-- 恐ろしくカオスなsql文!
		$sql = "
		  select
		  tb_name,
		  tb_name2,
		  tb_name3
	          from
		  tb_name
	          inner join tb_name2
   		  on tb_name.id = tb_name2.id
		  inner join tb_name3
		  on tb_name.tb_name_value_id = tb_name3.tb_name_value_id
		  where tb_name2.id = :id";
		$params = array(
			'id' => $id
		);
                /* ここでsqlを実行 */
		$sql_array = $this->query($sql, $params);
    • だけど、cakephpっぽくないし、やっぱり値が取得しづらいので、"find()"を使いましたとさ。
-- find()はこんな感じ
-- joinsと、paramsを続けて記載し、最後にfind()に引数として渡す。って感じだね。
$joins = array(
  array(
    'type' => 'inner',
    'table' => 'table_name',
    'conditions' => array(
    'ここに条件を記載(sqlでいう、where句のところ)',
    ),
  ),
  -- 複数結合したい場合はここから更にarray()で続ける。
);

-- paramsの作成
$params = array(
  'fields' => '*',
  'joins' => $joins,
  'conditions' => '',
  'order' => '',
);

-- 最後にfind()を実行
$find_data = $this->find('all', $params);