我已经将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
Run Code Online (Sandbox Code Playgroud)
这是代码:
class Pages {
function home() {
print 'home';
}
}
$app = new \Slim\Slim();
$app->get('/', array('Pages', 'home'));
$app->run();
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我应该另外编辑我的课吗?
谢谢!
看起来你的错误报告比过去更高,因为我相信你得到的E_STRICT错误是一个错误.如果您更改了function home()方法,则public static function home()不会再出现错误.
也就是说,更好的解决方案可能是尝试Slim 2.4.0中的新(-ish)控制器功能.您的新路线如下所示:
$app->get('/', '\Pages:home');
Run Code Online (Sandbox Code Playgroud)