登録系ページの構築に使うクラスとメソッド
ここでいう登録系ページとは、チュートリアルで作成したブックマークリストの /bookmarks/add や /bookmarks/edit のようにモデルを通じてテーブルのレコードを追加・更新するページのことです。
Model::validates()
引数で渡す CakePHP 形式の入力値を検証し、値が正しいかの真偽値を返します。
Model::validates ( $data = array()
)
$data 検証したい data[Model][Field] 形式のデータこのメソッドは Model::save() で内部的に呼ばれます。
Model::save()
引数で渡す CakePHP 形式の入力値をデータベースへ保存します。
Model::save ( $data = null,
$validate = true,
$fieldList = array()
)
$data 保存したい data[Model][Field] 形式のデータ
$validate 保存の前に入力値を検証するかの真偽値(省略時は検証する)
$fieldList 保存したいフィールド名のリスト(省略時は $data すべて)CakePHP 形式のデータ $data をデータベースに保存します。
$data 中にプライマリキーを指定した場合は UPDATE によるレコードの更新、指定しない場合は INSERT による新規レコードの追加が実行されます。
このメソッドはチュートリアルではブックマークの新規登録と編集画面 ( /bookmarks/add, /bookmarks/edit )を作る際に使用していました。
Model::beforeValidate()
Model::validates() の前に呼ばれるコールバックメソッドです。
Model::beforeValidate(
)独自のルールで入力値を検証したい場合にオーバーライドします。
入力値は Model::data (メソッドから見た場合は $this->data )に CakePHP 形式で格納されています。
検証にパスした場合は返り値に true 、失敗した場合は false を返す必要があります。
Model::beforeSave()
Model::save() の前に呼ばれるコールバックメソッドです。
Model::beforeSave (
)保存前に入力データを加工したい場合にオーバーライドします。
入力値は Model::data (メソッドから見た場合は $this->data )に CakePHP 形式で格納されています。
返り値には true を指定しますが、もし Model::save() を中断したい場合は false を指定してください。
Controller::cleanUpFields()
Controller::cleanUpFields() を参照ください。
HtmlHelper::formTag()
form タグを表示するためのヘルパーメソッドです。
HtmlHelper::formTag ($target = null,
$type = 'post',
$htmlAttributes = array()
)
$target 送信先(省略時は同じページ)
$type 送信方式(省略時は post )
$htmlAttributes エレメントの追加属性例
$html->formTag("/path/to/action", "post"); ↓ <form action="/path/to/action" method="post" />
HtmlHelper::input()
input type=”text” タグを表示するためのヘルパーメソッドです。
HtmlHelper::input ( $fieldName,
$htmlAttributes = array(),
$return = false
)
$fieldName モデル名付きフィールド名( Modelname/fieldname )
$htmlAttributes HTML 属性
$return 生成した HTML を返り値として返すか?(デフォルトは出力する)例
$html->input("Bookmarks/site_name", array("size" => 50, "maxlength" => 100)); ↓ <input type="text" name="data[Bookmarks][site_name]" size="50" maxlength="100" />
もし Controller::data[Bookmarks][site_name] に入力済みのデータがある場合は、自動的にその値をデフォルト値として出力します。
HtmlHelper::password()
input type=”password” タグを表示するためのヘルパーメソッドです。
HtmlHelper::password ( $fieldName,
$htmlAttributes = array(),
$return = false
)
$fieldName モデル名付きフィールド名( Modelname/fieldname )
$htmlAttributes HTML 属性
$return 生成した HTML を返り値として返すか?(デフォルトは出力する)例
$html->password("Users/password", array("size" => 50, "maxlength" => 100)); ↓ <input type="password" name="data[Users][password]" size="50" maxlength="100" />
もし Controller::data[Users][password] に入力済みのデータがある場合は、自動的にその値をデフォルト値として出力します。
HtmlHelper::hidden()
input type=”hidden” タグを表示するためのヘルパーメソッドです。
HtmlHelper::hidden ( $fieldName,
$htmlAttributes = array(),
$return = false
)
$fieldName モデル名付きフィールド名( Modelname/fieldname )
$htmlAttributes HTML 属性
$return 生成した HTML を返り値として返すか?(デフォルトは出力する)例
$html->hidden("Hidden/field", array("value" => "HiddenValue")); ↓ <input type="hidden" name="data[Hidden][field]" value="HiddenValue" />
もし Controller::data[Hidden][field] に入力済みのデータがある場合は、自動的にその値をデフォルト値として出力します。
HtmlHelper::textarea()
textarea タグを表示するためのヘルパーメソッドです。
HtmlHelper::textarea ( $fieldName,
$htmlAttributes = array(),
$return = false
)
$fieldName モデル名付きフィールド名( Modelname/fieldname )
$htmlAttributes HTML 属性
$return 生成した HTML を返り値として返すか?(デフォルトは出力する)例
$html->textarea("Users/notes", array("cols" => 100, "rows" => 10)); ↓ <textarea name="data[Users][notes]" cols="100", rows="10"> </textarea>
もし Controller::data[Users][notes] に入力済みのデータがある場合は、自動的にその値をデフォルト値として出力します。
HtmlHelper::checkbox()
input type=”checkbox” タグを表示するためのヘルパーメソッドです。
HtmlHelper::checkbox ( $fieldName,
$title = null,
$htmlAttributes = array(),
$return = false
)
$fieldName モデル名付きフィールド名( Modelname/fieldname )
$title 非推奨につき null を渡します
$htmlAttributes HTML 属性
$return 生成した HTML を返り値として返すか?(デフォルトは出力する)例
$html->checkbox("Users/optinmail", array("value" => "1", "checked" => "checked")); ↓ <input type="checkbox" name="data[Users][optinmail]" value="0" /> <input type="checkbox" name="data[Users][optinmail]" value="1" checked="checked" />
もし Controller::data[Users][optinmail] に入力済みのデータがある場合は、自動的にその値をデフォルト値として出力します。
HtmlHelper::radio()
input type=”radio” タグを表示するためのヘルパーメソッドです。
HtmlHelper::radio ( $fieldName,
$options,
$inbetween = null,
$htmlAttributes = array(),
$return = false
)
$fieldName モデル名付きフィールド名( Modelname/fieldname )
$options array("value" => "title") 形式の配列
$inbetween radio ボタン同士を隔てる文字列
$htmlAttributes HTML 属性
$return 生成した HTML を返り値として返すか?(デフォルトは出力する)例
$html->radio("Users/sex", array("1" => "男性", "2" => "女性")); ↓ <input type="radio" name="data[Users][sex]" value="1" /> <input type="radio" name="data[Users][sex]" value="2" />
もし Controller::data[Users][sex] に入力済みのデータがある場合は、自動的にその値をデフォルト値として出力します。
HtmlHelper::selectTag()
select タグを表示するためのヘルパーメソッドです。
HtmlHelper::selectTag ( $fieldName,
$optionElements,
$selected = null,
$selectAttr = array(),
$optionAttr = null,
$showEmpty = true,
$return = false
)
$fieldName モデル名付きフィールド名( Modelname/fieldname )
$optionElements array("value" => "title") 形式の配列
$selected 初期選択する値
$selectAttr select タグの HTML 属性
$optionAttr option タグの HTML 属性
$showEmpty 空の option タグを生成するかの真偽値
$return 生成した HTML を返り値として返すか?(デフォルトは出力する)例
$html->radio("Users/sex", array("1" => "男性", "2" => "女性"), null, null, null, false); ↓ <select name="data[Users][sex]"> <option value="1">男性</option> <option value="2">女性</option> </select>
もし Controller::data[Users][sex] に入力済みのデータがある場合は、自動的にその値をデフォルト値として出力します。
HtmlHelper::tagErrorMsg()
指定したフィールドの入力値にエラーがある場合、エラーメッセージを表示します。
HtmlHelper::tagErrorMsg ( $field,
$text
)
$field モデル名付きフィールド名( Modelname/fieldname )
$text エラーメッセージ$field で指定したモデルのフィールドにエラーがあるか検証し、エラーがあった場合 $text を出力します。
登録系のページでエラーのある項目に再入力を促す場合に使用します。