2014-12-01 69 views
1

網站上的文檔有點缺乏(http://fatfreeframework.com/routing-engine)。我想使用POST的簡寫表達式:如何使用Fat-Free-Framework將POST參數發送到PHP中的函數?

$f3->route('POST /login','Auth::login'); 

如何發送params到上面的Auth-> login()函數中?

這是寫它的另一種方式,但時間長一點:

$f3->route('POST /login', 
    function($f3) { 
     $params = $f3->get('POST'); 
     $Auth = new Auth; 
     $Auth->login($params['username'], $params['password']); 
    } 
); 

回答

1

如果你的意思是,Auth::login應該自動接收POST數據作爲參數,那麼你就不能。

所有F3路由執行接收下列參數:

  1. 框架實例
  2. 路由令牌(如果有的話)

爲一個例子見here

無論如何,如果你指的是Auth->login功能是one included in the framework,那麼就不能以任何方式,因爲login()功能不是路由處理工作。它只是返回TRUEFALSE。路由處理程序必須做的比這更多:例如,在成功時重新路由用戶或在錯誤時重新顯示登錄表單。

+0

我已經更新的例子,以避免將來出現混亂 – ikkez 2014-12-02 10:16:09

+0

好,謝謝。這個例子確實是誤導性的。 – xfra35 2014-12-02 10:35:26

+0

是的,終於想出了所有的路由處理程序接收f3實例和路由令牌。然後你可以在Auth函數中使用f3實例訪問POST參數(對於這個例子)。 – Chandrew 2014-12-16 15:23:08

1

嘗試:

$f3->route('POST /login', 
function($f3,$params) { 
    $Auth = new Auth; 
    $Auth->login($params['username'], $params['password']); 
} 
); 
相關問題