\NetCommonsFormHelper

NetCommonsでFormHelperをOverrideしたHelper

Add your application-wide methods in the class below, your helpers will inherit them.

Summary

Methods
Properties
Constants
__call()
create()
input()
end()
error()
help()
label()
$helpers
No constants found
_inputOptions()
_input()
No protected properties found
N/A
No private methods found
No private properties found
N/A

Properties

Methods

__call()

__call(string  $method, array  $params) : mixed

各プラグインFormHelperラップ用マジックメソッド

指定されたメソッドにより、各プラグインのFormHelperのメソッドを呼び出します。

$method による出力内容

Parameters

string $method

メソッド

array $params

パラメータ

Returns

mixed

create()

create(mixed  $model = null, array  $options = array()) : string

共通のオプションをセットして、FormHelper->create()の結果を出力する

  • 二重submit防止のため、ng-submit=submit($event)をセットする
  • エラー出力をNetCommons用の表示をするため、novalidateをOffにする

return サンプル

<form method="post" novalidate="novalidate" ng-submit="submit($event)" action="/auth_general/auth_general/login">

Parameters

mixed $model

モデル名

array $options

オプション

Returns

string

input()

input(string  $fieldName, array  $options = array()) : string

NetCommons用Htmlを付加して、FormHelper::input()の結果を出力する。

下記の$optionsに指定した内容に基づきHTMLを出力する。
  • help=メッセージ(NCオリジナル)
    このオプションは、ヘルプブロックを出力するオプション。

    • 入力
      echo $this->NetCommonsForm->input('Bbs.name',
          array(
              'type' => 'text',
              'label' => __d('bbses', 'Bbs name'),
              'required' => true,
              'help' => '掲示板名を入力してください。',
          )
      );
    • 出力
      <div class="form-group">
          <label class="control-label" for="BbsName">
              掲示板名
              <strong class="text-danger h4">*</strong>
          </label>
          <input type="text" id="BbsName" class="form-control" name="data[Bbs][name]">
          <div class="help-block">掲示板名を入力してください。</div>
          <div class="has-error"></div>
      </div>
  • type=text (typeを省略した場合、デフォルト値)
    FormHelper::input() の結果を出力する。

    • 入力
      echo $this->NetCommonsForm->input('Bbs.name',
          array(
              'type' => 'text',
              'label' => __d('bbses', 'Bbs name'),
              'required' => true,
          )
      );
    • 出力
      <div class="form-group">
          <label for="BbsName" class="control-label">
              掲示板名
              <strong class="text-danger h4">*</strong>
          </label>
          <input name="data[Bbs][name]" class="form-control" maxlength="255" type="text" value="サンプル" id="BbsName"/>
          <div class="has-error"></div>
      </div>
  • type=textarea
    FormHelper::input() の結果を出力する。

    • 入力
      echo $this->NetCommonsForm->input('Bbs.name',
          array(
              'type' => 'textarea',
              'label' => '内容',
              'required' => true,
          )
      );
    • 出力
      <div class="form-group">
          <label class="control-label" for="BbsName">
              内容
              <strong class="text-danger h4">*</strong>
          </label>
          <textarea id="BbsName" rows="6" cols="30" class="form-control" name="data[Bbs][name]"></textarea>
          <div class="has-error"></div>
      </div>
  • type=radio
    FormInputHelper::radio() の結果を出力する。

  • type=select, multiple=checkbox
    FormInputHelper::multipleCheckbox() の結果を出力する。

  • type=checkbox
    FormInputHelper::checkbox() の結果を出力する。

  • type=select
    FormInputHelper::select() の結果を出力する。

  • type=hidden
    FormInputHelper::hidden() の結果を出力する。

  • type=datetime
    datetimepicker の結果を出力する。
    • 入力
      echo $this->NetCommonsForm->input('publish_start',
          array(
              'type' => 'datetime',
              'required' => 'required',
              'label' => __d('blogs', 'Published datetime')
          )
      );
    • 出力
      <div class="form-group">
          <label for="BlogEntryPublishStart" class="control-label">公開日時
              <strong class="text-danger h4">*</strong>
          </label>
          <input name="data[BlogEntry][publish_start]"
              class="form-control"
              datetimepicker="1"
              convert_timezone="1"
              ng-model="NetCommonsFormDatetimePickerModel_BlogEntry_publish_start"
              value="2016-04-20 09:00:24"
              ng-value="NetCommonsFormDatetimePickerModel_BlogEntry_publish_start"
              ng-init="NetCommonsFormDatetimePickerModel_BlogEntry_publish_start=&#039;2016-04-20 09:00:24&#039;"
              type="text" id="BlogEntryPublishStart"/>
          <div class="has-error"></div>
      </div>


$optionsの内容の他に、下記のHTMLを強制的に出力する。
  • TimeZone関係のHTML
    <input type="hidden"
        name="data[_NetCommonsTime][user_timezone]"
        value="Asia/Tokyo" id="_NetCommonsTimeUserTimezone"/>
    <input type="hidden"
        name="data[_NetCommonsTime][convert_fields]"
        value="BlogEntry.publish_start"
        id="_NetCommonsTimeConvertFields"/>
  • エラー発生時、入力ボックスの色を変えるためのdiv
    <div class="has-error">
        ・・・
    </div>

Parameters

string $fieldName

フィールド名("Modelname.fieldname"形式)

array $options

オプション配列

$optionsの初期値
  • 共通
    array(
        'error' => false,
        'required' => null,
        'label' => null,
    );
  • type=number の場合
    array(
        'error' => false,
        'required' => null,
        'label' => null,
        'min' => 0,
        'div' => array('class' => 'form-group')
    );
$optionsの値

基本的なオプションについては、FormHelperのオプションを参照。 そのうち、下記が良く使われるオプションである。

  • 必須マークを付ける場合
    array(
        'required' => true,
    );
  • プレースホルダーテキストを表示する場合
    array(
        'placeholder' => 'アンケートを入力してください。',
    );
  • ヘルプブロックを表示する場合(NetCommonsのみのオプション)
    出力内容については、こちら を参照。
    array(
        'help' => 'アンケートを入力してください。',
    );

Returns

string

error()

error(string  $fieldName, string|array  $text = null, array  $options = array()) : string

エラーの出力

サンプル

  • 入力
  • 出力

Parameters

string $fieldName

フィールド名 "Modelname.fieldname"

string|array $text

エラーメッセージ

array $options
の属性オプション

Returns

string

help()

help(string  $helpText) : string

ヘルプブロックの表示

サンプル

  • 入力
  • 出力

Parameters

string $helpText

ヘルプテキスト

Returns

string

label()

label(string  $fieldName = null, string  $labelText = null, array  $options = array(), boolean  $returnHtml = true) : string|array

<label>タグの表示

サンプル($returnHtml=true)

  • 入力
  • 出力

サンプル($returnHtml=false)

  • 入力
  • 出力

Parameters

string $fieldName

フィールド名 "Modelname.fieldname"

string $labelText

ラベルテキスト

array $options

オプション

boolean $returnHtml

戻り値をHTMLにするか配列にするか

Returns

string|array —

HTMLもしくはoption配列

_inputOptions()

_inputOptions(string  $type, array  $options) : array

<input>のオプション このメソッドは、NetCommonsFormHelper->input()から実行される。

Parameters

string $type

タイプ

array $options

オプション配列

Returns

array

_input()

_input(string  $fieldName, array  $options = array()) : string

<input>の出力 このメソッドは、NetCommonsFormHelper->input()から実行される。

Parameters

string $fieldName

フィールド名("Modelname.fieldname"形式)

array $options

inputのオプション配列

Returns

string —

HTML