2014-12-01 170 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']); 
} 
); 
相关问题