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

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