【发布时间】:2017-03-20 11:32:26
【问题描述】:
到目前为止,我还没有找到很多与此相关的问题和答案,所以我想我会问这个问题,因为它会极大地帮助我作为初学者学习 PHP 和 Slim 框架。这很简单(我认为)。
所以,我想将我的主页路由到另一个名为 about.php 的页面。我正在使用安装在我的供应商文件夹中的 Slim/Slim 框架。我有一个带有以下代码的 index.php 文件:
<?php
require '/vendor/autoload.php';
$app = new \Slim\Slim();
$app->get('/', function() use($app){
$app->render('about.php');
});
$app->run();
?>
我还有一个 about.php 文件,它确实存在。
这是我的 composer.json 文件中当前的内容:
"require": {
"monolog/monolog": "^1.22",
"slim/slim": "^3.7",
"twig/twig": "^1.32",
"slim/views": "^0.1.3"
}
当我运行 MAMP(设置以访问我正在处理的项目)查看页面时,它是空白的。谁能帮我理解我做错了什么?
然后我运行了这个(从 require 语句中删除前导 '/',并添加一行来显示错误),它显示了 500 错误:
<?php
ini_set('display_errors', 1);
require 'vendor/autoload.php';
$app = new \Slim\Slim();
$view = $app->view();
$view->parserOptions = array(
'debug' => true
$app->get('/', function() use($app){
$app->render('about.php');
});
$app->run();
?>
【问题讨论】:
-
你实例化了 Slim PhpRenderer 吗?
-
@rob,我还没有实例化 Slim PhpRenderer。我在 Slim/Slim 或 Slim/Views 下的供应商文件夹中找不到该文件。我需要“要求”另一个包裹吗? (我是初学者,所以也在学习如何谈论php)。
-
请将
ini_set('display_errors', 1);添加到文件顶部以查看是否有任何错误 - 并且可能尝试删除您的 require 语句中的前导斜杠,我认为这可能是一个问题,因为 php 会尝试从根目录包含 -
嗨@Daniel,感谢您的建议,我已经从require语句中删除了前导'/'并添加了行(更新了上面的问题以显示代码。我收到500服务器错误. 我的文件正确设置了 index.php 并且没有任何冲突。
-
看起来我使用的是 slim/slim(2.0 版)而不是 slim/app(我的供应商文件夹中的 3.0 版)。仍在努力,感谢 cmets。