在路由中使用方法时出现 Slim 500 服务器错误
Slim 500 server error while using method inside route
所以我确实尝试了没有 slim 的命名空间并且它工作没有任何问题但是当在 slim 中时不断显示:
500 server error
Composer.json:
{
"require":{
"slim/slim":"2.*",
"slim/extras":"2.*",
"twig/twig":"1.*",
"slim/pdo": "~1.6"
},
"autoload":{
"psr-4":{
"Ultimateboard\": "src"
}
}
}
MainController.php
namespace Ultimateboard;
class MainController {
function __construct(){
}
public function index(){
echo 'hello main controller index';
}
}
index.php
require_once 'vendor/autoload.php';
require_once 'app/loads/routes.php';
我是如何尝试调用这些方法的:
1 Routes.php
$app = new \Slim\Slim(
array(
'view'=> new \Slim\Extras\Views\Twig(),
'debug'=> true
)
);
$app->get('/',Ultimateboard\MainController);
$app->get('/testing',function(){
echo 'testing works';
});
$app->run();
或
Routes.php
$app = new \Slim\Slim(
array(
'view'=> new \Slim\Extras\Views\Twig(),
'debug'=> true
)
);
$app->get('/',function(){
use \Ultimateboard\MainController as MainController;
new MainController()->index();
});
$app->get('/testing',function(){
echo 'testing works';
});
$app->run();
目录结构:
也许我遗漏了某些东西或与某些东西发生了冲突,确实在不同的网站上尝试了很多答案,但都没有奏效,这就是为什么要在这里发布它的原因。
通过将命名空间更改为
解决
namespace \Ultimateboard\Controllers;
和路由到:
$app->get('/',function() use ($app){
(new Ultimateboard\Controllers\Maincontroller())->index();
});
所以我确实尝试了没有 slim 的命名空间并且它工作没有任何问题但是当在 slim 中时不断显示:
500 server error
Composer.json:
{
"require":{
"slim/slim":"2.*",
"slim/extras":"2.*",
"twig/twig":"1.*",
"slim/pdo": "~1.6"
},
"autoload":{
"psr-4":{
"Ultimateboard\": "src"
}
}
}
MainController.php
namespace Ultimateboard;
class MainController {
function __construct(){
}
public function index(){
echo 'hello main controller index';
}
}
index.php
require_once 'vendor/autoload.php';
require_once 'app/loads/routes.php';
我是如何尝试调用这些方法的:
1 Routes.php
$app = new \Slim\Slim(
array(
'view'=> new \Slim\Extras\Views\Twig(),
'debug'=> true
)
);
$app->get('/',Ultimateboard\MainController);
$app->get('/testing',function(){
echo 'testing works';
});
$app->run();
或
Routes.php
$app = new \Slim\Slim(
array(
'view'=> new \Slim\Extras\Views\Twig(),
'debug'=> true
)
);
$app->get('/',function(){
use \Ultimateboard\MainController as MainController;
new MainController()->index();
});
$app->get('/testing',function(){
echo 'testing works';
});
$app->run();
目录结构:
也许我遗漏了某些东西或与某些东西发生了冲突,确实在不同的网站上尝试了很多答案,但都没有奏效,这就是为什么要在这里发布它的原因。
通过将命名空间更改为
解决namespace \Ultimateboard\Controllers;
和路由到:
$app->get('/',function() use ($app){
(new Ultimateboard\Controllers\Maincontroller())->index();
});