[FuelPHP] メソッドがPOSTかGETかを判定する方法

2 min read

post_index(),get_index()などでルーティングできない設計の場合。

従来の方法

本来は以下のように接頭辞にPOST/GETを指定することでルーティングすることができる。
class Controller_Example extends Controller {
  public function get_index() {
    // HTTPメソッドがGETである場合に呼び出される
  }

  public function post_index() {
    // HTTP メソッドが POST である場合に呼び出される
  }
}

action_index()内での判定方法

同一アクション内でPOST/GETを判定したい場合は以下のようにInput::method()を使用する。
class Controller_Example extends Controller {
  public function action_index() {
      // GETの場合
      if( Input::method() == 'GET' ) {

      }
      // POSTの場合
      if( Input::method() == 'POST' ) {

      }
  }
}

Input クラスのmethod()は HTTP メソッドを返却する。(GET, POST, DELETE なんかが取れる)

method($default = 'GET')
Static Yes
Parameters
Param Default Description
$default
'GET'
Default HTTP method.
Returns string
Example
Input::method(); // "GET"
引用: Input - Classes - FuelPHP Documentation