FuelPHPのFormクラス

php

FuelPHPで登録処理やメールフォームを作成する場合に、formタグ関連の出力を行ってくれる便利なクラスがあります。
今回はそのFormクラスについて取り上げたいと思います

下記は、Formクラスについてのリファレンス+サンプルとなります。

open($attributes = array(), $hidden = array())

formの開始タグが出力されます。

コード

echo Form::open('controller/action');

実行結果

<form accept-charset="utf-8" action="http://hostname/controller/action" method="post">

close()

フォームの閉じタグが出力されます。

コード

echo Form::close();

実行結果

</form>

input($field, $value = null, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::input('email', '', ['id' => 'email_id', 'class' => 'email_class', 'style' => 'text-align: center;']);

実行結果

<input id="email_id" class="email_class" style="text-align: center;" name="email" type="text" value="" />

button($field, $value = null, $attributes = array())

ボタン要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::input('save', 'SAVE', ['id' => 'button_save', 'class' => 'button_save_class', 'style' => 'text-align: center;']);

実行結果

<button id="button_save" class="button_save_class" style="text-align: center;" name="save">SAVE</button>

hidden($field, $value = null, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::hidden('id', 100, ['id' => 'hidden_id', 'class' => 'hidden_class']);

実行結果

<input id="hidden_id" class="hidden_class" name="id" type="hidden" value="100" />

csrf()

生成されたCSRFトークンがセットされた入力要素を出力します。

コード

echo Form::csrf();

実行結果

<input name="<?php echo Config::get('security.csrf_token_key');?>" type="hidden" value="<?php echo Security::fetch_token();?>" />

password($field, $value = null, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::input('password', '', ['id' => 'password_id', 'class' => 'password_class', 'style' => 'text-align: center;']);

実行結果

<input id="password_id" class="password_class" style="text-align: center;" name="password" type="password" value="" />

radio($field, $value = null, $checked = null, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::radio('type', 1, true, ['id' => 'radio_id', 'class' => 'radio_class', 'style' => 'border: 1px solid #000;']);

実行結果

<input id="radio_id" class="radio_class" style="border: 1px solid #000;" checked="checked" name="type" type="radio" value="1" />

checkbox($field, $value = null, $checked = null, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::checkbox('type', 1, true, ['id' => 'checkbox_id', 'class' => 'checkbox_class', 'style' => 'border: 1px solid #000;']);

実行結果

<input id="checkbox_id" class="checkbox_class" style="border: 1px solid #000;" checked="checked" name="type" type="checkbox" value="1" />

file($field, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::file('file', ['id' => 'file_id', 'class' => 'file_class', 'style' => 'border: 1px solid #000;']);

実行結果

<input id="file_id" class="file_class" style="border: 1px solid #000;" name="file" type="file" value="" />

reset($field, $value = null, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::reset('reset', 'RESET', ['id' => 'reset_id', 'class' => 'reset_class', 'style' => 'border: 1px solid #000;']);

実行結果

<input id="reset_id" class="reset_class" style="border: 1px solid #000;" name="reset" type="reset" value="RESET" />

submit($field, $value = null, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::submit('submit', 'SUBMIT', ['id' => 'submit_id', 'class' => 'submit_class', 'style' => 'border: 1px solid #000;']);

実行結果

<input id="submit_id" class="submit_class" style="border: 1px;" name="submit" type="submit" value="SUBMIT" />

textarea($field, $value = null, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::textarea('textarea', 'default string', ['rows' => 10, 'cols' => 5]);

実行結果

<textarea cols="5" name="textarea" rows="10">default string</textarea>

select($field, $values = null, $options = array(), $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::select(
  'type',
  1,
  [1 => 'select1', 2 => 'select2'],
  ['id' => 'select_id', 'class' => 'select_class', 'style' => 'border: 1px;']
);

実行結果

<select id="select_id" class="select_class" style="border: 1px;" name="type">
<option value="1">select1</option>
<option value="2">select2</option>
</select>

label($label, $id = null, $attributes = array())

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::label('LABEL', 'label');

実行結果

<label for="label">LABEL</label>

fieldset_open($attributes = array(), $legend = null)

入力要素を出力します。
フィールド名、フィールド値やタグ属性をそれぞれ指定する、または最初の引数に配列でまとめて指定することができます。

コード

echo Form::fieldset_open();

実行結果

<fieldset>

コード(idとclassを指定する場合)

echo Form::fieldset_open(['id' => 'example_id', 'class' => 'example_class']);

実行結果

<fieldset id="example-id" class="example-class">

コード(legendを出力する場合 – その1)

echo Form::fieldset_open([], 'Custom Legend');

実行結果

<fieldset>
<legend>Custom Legend</legend>

コード(legendを出力する場合 – その2)

echo Form::fieldset_open(['legend' => 'Custom Legend']);

実行結果

<fieldset>
<legend>Custom Legend</legend>

fieldset_close()

フォームの閉じタグが出力されます。

コード

echo Form::fieldset_close();

実行結果

</fieldset>

Formクラスの使用感

状況によっては、直接タグを書いた方が早い場合もあるかもしれません。

自分の場合、jsなどで利用する部分については全て直接書くようにしています。
こんな感じにルールを作った上でコーディングすると、修正の際も楽になると思います。

コメント

  1. Anh より:

    こんにちは、
    私はfuelphpについて調べていますが、
    本ページが見つけられて、本当に助かりました。
    ありがとうございます。

    本ページの内容を1回読みましたが、
    間違いところがあるそうですので、
    フィードバックさせていただきます。

    これは一箇所の例だけですが、こういう記述がりました。

    submit($field, $value = null, $attributes = array())
    コード
    echo Form::reset(‘submit’, ‘SUBMIT’, array(‘id’ => ‘submit_id

    例文のコードは問題ありそうです。
    ということでもっとよいページになるとうに
    ご確認をお願いします。
    よろしくお願いします。

  2. errorcode より:

    ご指摘頂きありがとうございます!
    こちら記載内容を修正させて頂きましたm(_ _m)

タイトルとURLをコピーしました