いろいろな関数
is
-
is('get')
現在のリクエストが GET かどうかを調べます。 -
is('put')
現在のリクエストが PUT かどうかを調べます。 -
is('post')
現在のリクエストが POST かどうかを調べます。 -
is('delete')
現在のリクエストが DELETE かどうかを調べます。 -
is('head')
現在のリクエストが HEAD かどうかを調べます。 -
is('options')
現在のリクエストが OPTIONS かどうかを調べます。 -
is('ajax')
現在のリクエストが X-Requested-With = XMLHttpRequest に由来するものか どうかを調べます。 -
is('ssl')
リクエストが SSL 経由かどうかを調べます。 -
is('flash')
リクエストに Flash の User-Agent があるかどうかを調べます。 -
is('mobile')
リクエストがモバイルエージェントの共通リストに由来しているかどうかを調べます。
find
find(string $type = 'first', array $params = array())
- データの取得のために使う関数。
-
$type =
'all'
'first'
'count'
'list'
'neighbors'
'threaded'
- 自分で定義したカスタムfinder
-
$type
は大文字と小文字を区別する。 -
$params
はいろいろな種類のfind()
ヘのパラメータを渡すために使用。(デフォルトでは以下)
array(
'conditions' => array('Model.field' => $thisValue), // 検索条件の配列
'recursive' => 1, // int
// フィールド名の配列
'fields' => array('Model.field1', 'DISTINCT Model.field2'),
// 並び順を文字列または配列で指定
'order' => array('Model.created', 'Model.field3 DESC'),
'group' => array('Model.field'), // GROUP BYのフィールド
'limit' => n, // int
'page' => n, // int
'offset' => n, // int
'callbacks' => true, // falseの他に'before'、'after'を指定できます
'having' => array('COUNT(Model.field) >' => 1), // HAVING 条件の配列
'lock' => true, // FOR UPDATE ロックを有効にします
)
findbyid
サンプル:$this->Cake->findById(7);
対応するSQL:Cake.id = 7
find('all')
find('all', $params)
- 配列で結果を返す。
戻り値は以下のような形式
Array
(
[0] => Array
(
[ModelName] => Array
(
[id] => 83
[field1] => value1
[field2] => value2
[field3] => value3
)
[AssociatedModelName] => Array
(
[id] => 1
[field1] => value1
[field2] => value2
[field3] => value3
)
)
)
set
$this->set('変数名',$値);
- Viewにデータを渡すためのControllerの機能。
- setメソッドを使用して渡された変数は、view内で使用することができる。
create
Model::create(array $data = array())
- データを保存するためにモデルの状態をリセットする。
- 実際にはデータベースにデータは保存されない。
-
Model::$id
フィールドがクリアされ、データベースのフィールドのデフォルト値を元に、Model::$data
の値をセットする。 - データベースフィールドのデフォルト値が存在しない場合、
Model::$data
には空の配列がセットされる。 -
$data
パラメータが渡されれば、データベースフィールドのデフォルト値都マージされ、モデルのインスタンスはデータを保存する準備ができる。 -
$data
パラメータへfalse
やnull
が渡された場合、Model::$data
には空の配列がセットされる。
save
save(array $data = null, array $params = array())
- 配列の形式のデータを受け取ってそれを保存する。
- 2つ目のパラメータはバリデーションしない場合に使われる。
- 3つ目のパラメータは保存する対象のフィールドのリストを渡す。
redirect
Controller::redirect(mixed $url, integer $status, boolean $exit)
- フローをコントロールするメソッド。(画面遷移)
- 最初の引数に、CakePHPの相対URLを指定する。
-
$url
に相対URLまたは絶対URLを指定することができる。 - 2つ目のパラメータは、リダイレクトに伴うHTTPステータスコードを定義することができる。
- 3つ目のパラメータに
false
を指定しない限りはリダイレクト後にexit()
を呼び出す。
グローバル関数
__
__(string $string_id, boolean $return = false)
-
$string_id
は翻訳用のIDを規定 - 第2引数で自動的に文字列をecho出力するか(デフォルトでは出力される)
h
h(string $text, string $charset = null)
-
htmlspecialchars()
のラッパー。 - 特殊文字をHTMLエンティティに変換する。
参考
ラッパー関数:元々ある関数を包む関数。関数をラッピングして使いやすくする為の関数。
function funcA_wrapper(paramA){
//ラッパー関数を使い指定可能なパラメータを限定することでシンプルに!
funcA(paramA, 111, 222, 333, 444, 555);
}
//パラメータを限定することで自由度が下がるが扱いが簡単に!
funcA_wrapper(paramA);
ヘルパー
ヘルパーの設定
CakePHPでヘルパーを有効にするには、Controllerに認識させる必要がある。
書くコントローラは$helpers
プロパティを持っており、そのプロパティにはViewで利用できるヘルパーの一覧が保持されている。
Viewでヘルパーを使用するには、ヘルパーの名前をControllerの$helpers
配列に追加する。
class BakeriesController extends AppController {
public $helpers = array('Form', 'Html', 'Js', 'Time');
}
ヘルパーを使う
次のようにしてヘルパーを使う。
echo $this->Html->css('styles');
Html
link
HTMLリンクを作成するためのメソッド。
echo $this->Html->link(
'Enter',
'/pages/home',
['class' => 'button', 'target' => '_blank']
);
出力結果:
<a href="/pages/home" class="button" target="_blank">Enter</a>
Form
create
- フォームの開始タグを出力する。
end
- フォームの閉じタグを出力する。
その他
※チュートリアルを進めながら更新していきます。