登録系ページの構築に使うクラスとメソッド

ここでいう登録系ページとは、チュートリアルで作成したブックマークリストの /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 エレメントの追加属性

<?php $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 を返り値として返すか?(デフォルトは出力する)

<?php $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 を返り値として返すか?(デフォルトは出力する)

<?php $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 を返り値として返すか?(デフォルトは出力する)

<?php $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 を返り値として返すか?(デフォルトは出力する)

<?php $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 を返り値として返すか?(デフォルトは出力する)

<?php $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 を返り値として返すか?(デフォルトは出力する)

<?php $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 を返り値として返すか?(デフォルトは出力する)

<?php $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 を出力します。

登録系のページでエラーのある項目に再入力を促す場合に使用します。

« 「表示系ページの構築に使うクラスとメソッド」へ  |  トップへ  |  上の階層へ

トップページへ戻る / 前のページへ戻る

back to top