在silex中调用html(php文件)

时间:2015-10-18 18:22:58

标签: php silex

如何在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.

感谢

2 个答案:

答案 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();