如何在Silex中使用html文件视图。
我正在尝试将silex与一些自定义php代码一起使用,其中控制器方法包含视图文件。
这就是我所拥有的:在我的index.php中
$app->get('/', function (Request $request) {
$homeController = new HomeController($request);
$output = $homeController->show($request);
return new Response($output);
});
$app->run();
这是我的控制器的show方法:
ob_start();
include "view/start.html.php";
include "view/header.html.php";
include "view/contact.html.php";
include "view/footer.html.php";
include "view/end.html.php";
return ob_end_clean();
有没有办法让这项工作?
我不想将从控制器显示的视图的逻辑移到index.php。而且我现在也不想使用树枝。
这是我得到的错误:
UnexpectedValueException in Response.php line 403: The Response content must be a string or object implementing __toString(), "boolean" given.
感谢
答案 0 :(得分:0)
从你的错误:
Response内容必须是实现__toString()的字符串或对象,给定“boolean”。
可以安全地假设您的问题是您的某个包含失败。从关于include
的PHP手册:
包括失败时返回FALSE并发出警告
所以可能你试图包含一个不存在的文件,或者其中一个文件产生错误。
在开发环境中,您应确保显示PHP错误(请查看this question)
答案 1 :(得分:0)
您获得的错误是由于ob_end_clean
返回布尔值(成功或失败)这一事实。您可能正在寻找的功能是ob_get_clean
。
ob_start();
include "view/start.html.php";
include "view/header.html.php";
include "view/contact.html.php";
include "view/footer.html.php";
include "view/end.html.php";
return ob_get_clean();