Archives by date

You are browsing the site archives by date.

【CakePHP】EclipseにてModelクラスとViewクラスのメソッドを補完させる方法。

コントローラー内でModelクラス内のメソッドを補完させる方法と、ビューファイル(.ctp)内でViewクラスのメソッドを補完させる方法。

まずコントローラーにて。

/**
 * @property Item $Item
 */
class ExamplesController extends AppController {

}

コントローラークラスの上部にコメントアウトで@propertyを記述してやることで、Eclipaseがモデル内のメソッドを自動で補完してくれるようになる。複数のモデルを一括で指定したい場合はコメントアウト内に@propertyを列挙してあげればよい。
※コメントアウトをクラス内に記述してしまうと全く動作しないので注意。

/**
 * @property Item $Item
 * @property Hoge $Hoge
 * @property Fuga $Fuga
 * @property Piyo $Piyo
 */
class ExamplesController extends AppController {

}

次にビュー。

<?php /* @var $this View*/ ?>

「.ctp」内の先頭行に上記1行を記述してやればよい。
※予め「.ctp」をPHPファイルとしてEclipseに認識させておかないと補完されないので注意。

たったこれだけでCakePHPでの開発が数倍快適になること間違いなし。

 

【Webサービス】ブラウザ上で超強力な画像編集を行う方法。

とんでもないWebサービスを見つけてしまったのでメモ。

Photo editor online / free image editing direct in your browser – Pixlr.com

595821affbfe2de72fd121dd0f968530

画像にモザイクをかけられるツールはないかと探していたときに発見。

説明はほぼ不要。上記URLにアクセスすれば某超高級画像編集ソフトライクな画面が出てくる。あとは思うがままに操作するだけ。

これは近年稀にみる神サービス。

 

【MySQL】カラムの名前に別名をつけて取得する。

メモ。

SELECT
	col_1 AS hoge,
	col_2 AS fuga
FROM
	tbl_1

としてやると、本来「col_1」という名前だったカラム名が「hoge」として、「col_2」という名前のカラムは「fuga」として取得することが出来る。

以下PHPMYADMIN上で実行した際の参考画像。

0940fc81d9f939d7f864be36e7f9a09c

 

【MySQL】 JOIN (表結合)の違いまとめ。

いつもの如く超絶自分用。

結合方式 詳細
LEFT JOIN(LEFT OUTER JOIN)

・JOIN左側のテーブルデータは全て表示。(WHERE句があればそれに順ずる)

・そこへ対応する右側のテーブルデータが追される。

・対応するデータが右側のテーブルに存在しない場合、 NULLが挿入される。

RIGHT JOIN(RIGHT OUTER JOIN)

・基本的にLEFT JOINの逆動作

・JOIN右側のテーブルデータは全て表示。(WHERE句があればそれに順ずる)

・そこへ対応する左側のテーブルデータが追される。

・対応するデータが左側のテーブルに存在しない場合、 NULLが挿入される。

INNER JOIN

・指定したテーブルの双方に結びつくレコードが存在している場合のみ表示される。

・いずれかがNULLの場合どちらも表示されない。

SQLとしては以下のような感じ。

SELECT
	*
FROM 
	sites LEFT JOIN items
ON
	sites.id = items.site_id

上記は、サイトに対して結びつくアイテムをリレーションで管理しているような場面を想定した際の一例。
「LEFT JOIN」の部分を「RIGHT JOIN」「INNER JOIN」にすれば、上の表通りな挙動になる。