我已经将Slim用于了几个项目,我总是通过$app->route('/', array('MyClass', 'method'));
然而,在使用composer安装它之后,这就是我得到的错误:
call_user_func_array() expects parameter 1 to be a valid callback, non-static method Pages::home() should not be called statically
这是代码:
class Pages {
function home() {
print 'home';
}
}
$app = new \Slim\Slim();
$app->get('/', array('Pages', 'home'));
$app->run();
我错过了什么吗?我应该另外编辑我的课吗?
谢谢!
答案 0 :(得分:8)
您的错误报告看起来比过去更高,因为我相信您收到的错误是E_STRICT
错误。如果您将function home()
方法更改为public static function home()
,则不会再出现错误。
尽管如此,更好的解决方案可能是尝试新的(-ish)controller feature in Slim 2.4.0。您的新路线将如下所示:
$app->get('/', '\Pages:home');
答案 1 :(得分:0)
代码错误,您将数组作为参数而不是回调传递。尝试传递一个函数。
GET路线的文件: http://docs.slimframework.com/#GET-Routes
class Pages {
function home() {
print 'home';
}
}
$app = new \Slim\Slim();
$app->get('/',function() {
$page = new Pages();
$page->home();
});
$app->run();