PHP

【CakePHP2.3】FormHelper::create()の引数設定値まとめ。

自分用。

■関数定義

$this->Form->create($model, $options)

 

■引数詳細

引数 初期値 詳細
$model null モデル名を指定する。配列を渡した場合$optionsと見なされる
$options array() フォームのオプションを指定。詳細は下記。※下記に存在しないプロパティはformタグのアトリビューション(属性)として扱われる。

 

■$optionsに渡せるプロパティ一覧

キー 初期値 詳細
action null formタグのactionに設定する値。指定しなかった場合は現在のアクションが設定される。
default true falseを指定すると、Ajax通信が許可される。
encoding App.encodingの値 formタグのaccept-charsetに設定する値
enctype unll formタグのenctypeに設定する値。「type」を「file」に設定した場合は自動的に「multipart/form-data」が設定される
inputDefaults array() FormHelper::input()で用いるオプションのデフォルト値
type post フォームのタイプを指定。formタグのmethodに設定される。「put」「post」「get」「delete」「file」が設定可能
url null フォームのサブミット先URLを指定。Router::url()の引数形式が利用でき、actionの設定値よりもこちらが優先される

 

【CakePHP2.3】CakeRequest::is()で判定可能なリクエストタイプまとめ。

自分用。

タイプ 詳細
get GET形式のリクエストであるかを判定
post POST形式のリクエストであるかを判定
put PUT形式のリクエストであるかを判定
delete DELETE形式のリクエストであるかを判定
head HEAD形式のリクエストであるかを判定
options OPTIONS形式のリクエストであるかを判定
ssl SSLを用いたリクエストであるかを判定
ajax Ajaxからのリクエストであるかを判定
flash Flash(swf)からのリクエストであるかを判定
mobile モバイル端末からのリクエストであるかを判定
requested $params[‘requested’]に1がセットされているか否かを判定

 

【CakePHP2.3】FormHelper::input()の全type一覧。

メモ。

$this->Form->input()でフォームを出力する際、第二引数のtypeに渡せる値のまとめ。

■text
改行無しテキスト入力欄

■password
パスワード入力欄

■textarea
複数行テキスト入力欄

■file
ファイルアップロードフォーム

■select
セレクトボックス

■radio
ラジオボタン

■checkbox
チェックボックス

■date
日付入力欄

■time
時間入力欄

■datetime
日時入力欄

■hidden
非表示項目

■url
URL入力欄

 

ちなみに最後の「type=’url’」を指定すると、ブラウザ側で正しいURLかどうかのバリデーションを行ってくれる。
以下例。

84d40c9b2de7d79b8e5397aa552f8f0d

 

【CakePHP2.3】コアグローバル関数まとめ。

自分用。

■am()

配列を結合する

am($value[, ...])

 

■cache()

ファイルキャッシュの読み書きを行う

cache($path, $data, $expires, $target)

 

■clearCache()

ファイルキャッシュを削除する

clearCache($params, $type, $ext)

 

■config()

コンフィグファイルの読み込み

config($filename[, ...])

 

■convertSlash()

スラッシュを変換する

convertSlash($string)

 

■debug()

デバッグ情報の生成

debug($var, $showHtml, $showFrom)

 

■env()

環境変数を取得する

env($key)

 

■fileExistsInPath()

指定ファイルがパス内に存在するかをチェックする

fileExistsInPath($file)

 

■h()

特殊文字をHTMLエンティティに変換する

h($text, $double, $charset)

 

■LogError()

エラーログを出力する

LogError($message)

 

■sortByKey()

配列をソートする

sortByKey($array, $sortby, $order, $type)

 

■pluginSplit()

文字列をプラグイン名とクラス名に分割する

pluginSplit($name, $dotAppend, $plugin)

 

■pr()

変数をダンプする

pr($var)

 

■stripslashes_deep()

クオートされた文字列のクオートを再帰的に取り除く

stripslashes_deep($values)

 

【CakePHP2.3】Modelクラスのアソシエーション設定値まとめ。

■$hasMany

$className 関連付けるモデルクラス名
$foreignKey 自分の外部キーを格納する相手側モデルのフィールド名
$conditions 追加の検索条件
$fields 該当フィールド名
$type JOINの形式。デフォルトは「LEFT」
$order ソート順を指定
$limit 取得レコードの最大値
$offset スキップするレコード数
$dependent 自分のレコードを削除した際、相手側のレコードも削除するか否か。「true」で削除
$exclusive deleteAll()で一括削除を行いたい場合はtrueを指定
$finderQuery find()時に独自のSQLを発行したい場合に指定

 

■$belongsTo

$className 関連付けるモデルクラス名
$foreignKey 相手の外部キーを格納する自分側モデルのフィールド名
$conditions 追加の検索条件
$fields 該当フィールド名
$type JOINの形式。デフォルトは「LEFT」
$dependent 自分のレコードを削除した際、相手側のレコードも削除するか否か。「true」で削除
$counterCache 相手側のモデルで使用されるテーブル内に自分自身のレコード数を格納したい場合はtrue。格納するフィールド名を指定したい場合はフィールド名を指定

 

■$hasAndBelongsToMany

$className 関連付けるモデルクラス名
$joinTable 中間テーブル名
$with 関連付けたい中間テーブルに対するモデル名。中間テーブルにも値を保持しモデルとして利用したい場合に指定
$foreignKey 自分に対する外部キーを格納する中間テーブル内のフィールド名
$associationForeignKey 相手側の外部キーを格納する中間テーブル内のフィールド名
$unique 相手側に重複した値を許可しない場合はtrue
$conditions 追加の検索条件
$fields 該当フィールド名
$type JOINの形式。デフォルトは「LEFT」
$order ソート順を指定
$limit 取得レコードの最大値
$offset スキップするレコード数
$finderQuery find()時に独自のSQLを発行したい場合に指定
$deleteQuery delete()時に独自のSQLを発行したい場合に指定
$insertQuery save()時に独自のSQLを発行したい場合に指定

 

【CakePHP2.3】Modelクラスのアソシエーション挙動まとめ。

自分用。

hasOne:
(A hasOne B)
1対1の関係。Aモデルの1行に対してBモデルの1行が結びつく。外部キーはBテーブル内に存在。
hasMany:
(A hasMany B)
1対多の関係。Aモデルの1行に対して、Bモデルの複数行が結びつく。外部キーはBテーブル内に存在。
belongsTo:
(A belongsTo B)
多対1の関係。Aモデルの複数行が、Bモデルの1行と結びついている。外部キーはAテーブル内に存在。
hasAndBelongsToMany:
(A HABTM B)
複数対複数の関係。AテーブルにもBテーブルにも外部キーは存在せず、A_Bという中間テーブルを作成しそこでレコードの結びつきを管理する。

 

【CakePHP2.3】Controllerクラスの全プロパティまとめ。

自分用。

プロパティ(変数) デフォルト 説明
$autoLayout true 自動でレイアウトとビューを結合するか否か
$autoRender true 自動でビューをレンダリングするか否か
$cacheAction false ビューキャッシュを用いる場合に指定
$components array(‘Session’) コントローラー内で使用するコンポーネントを指定
$Components null コンポーネントを管理するクラスのインスタンス
$ext ‘.ctp’ ビューファイルの拡張子を指定
$helpers array() コントローラー内で使用するヘルパーを指定
$layoutPath null レイアウトファイルを格納するパス
$layout ‘default’ レイアウトとして使用するファイル名
$methods array() Controllerクラス以外に作成されたメソッドが格納される
$modelClass null コントローラー名に対応するモデル名が格納される
$modelKey null $modelClassに対応するキー名が格納される
$name null コントローラー名を指定
$passedArgs array() URLに含まれるパラメーターが格納される
$plugin null 指定されたプラグイン名が格納される
$request N/A CakeRequestクラスのインスタンス
$response N/A CakeResponseクラスのインスタンス
$scaffold false scaffold機能を使用するか否か
$uses true コントローラー内で使用するモデル名を指定
$validationErrors null バリデーションエラーメッセージが格納される
$view null 利用するビューのテンプレート名を設定
$View N/A ビュークラスのインスタンス
$viewClass ‘View’ ビュークラス名を指定する
$viewPath null ビューテンプレートを格納するパス
$viewVars array() set()関数で登録された値が格納される
$_eventManager null イベントマネージャークラスのインスタンス
$_mergeParent ‘AppController’ 親クラスと値をマージする際の、親クラス名
$_responseClass ‘CakeResponse’ レスポンス情報の格納されたクラスの名前

 

【CakePHP】ビューブロックを使ってみる。

例えばページごとに読み込むスクリプトを減らしたり追加したかったりするのをスマートに書きたいときなどに便利。

レイアウトファイルのヘッダー内に以下を記述。

echo $this->fetch('script');

次に各ビューファイルで以下を記述。

$this->append('script');
echo $this->element('elementFileName');
$this->end();

するとヘッダー内に記述したfetch(‘script’)の部分に呼び出したエレメントを挿入してくれるのである。
ちなみにHTMLヘルパーで読み込んだスクリプトファイルもfetch(‘script’)に渡すことが可能。

例えば以下のような感じ。

echo $this->Html->script('//www.google.com/jsapi', array('inline' => false));

HTMLヘルパー、script()メソッドの第二引数に「’inline’ => false」を渡してやると、その場ではなくビューブロック内に追加してくれる。
jsapiを必要なページのみで読み込みたい場合など、状況に応じてブロック内を簡単に書き換えられるため非常に便利。