我无法使用\ Template :: instance() - > render打开文件。我收到以下错误

时间:2018-05-23 06:45:23

标签: php fat-free-framework

它给了我以下错误,

[text] =>无法打开/home/mehul/www/portal.hsua.com.au/public_html/assets/templates.html

这是造成问题的代码部分。

    $this->f3->set('const', $constants);
    ob_start();
    echo \Template::instance()->render('/home/mehul/www/portal.hsua.com.au/public_html/assets/templates.html');
    $renderedView = ob_get_clean();

    /*foreach ($variables as $varname => $variable) {
        $this->f3->clear($varname);
    }*/

    return $renderedView;

2 个答案:

答案 0 :(得分:0)

  1. 该文件可能不存在

  2. 您在webbrowser中打开PHP文件PHP文件位于由Nginx / Apache提供的/ var / www中。如果是这种情况,您的网络服务器可能无法在您的主目录中打开文件。

  3. 我建议您将模板文件放在PHP文件旁边,以确保您的网络服务器可以访问它。

答案 1 :(得分:0)

在搜索有效文件时,render()方法将给定模板$file与存储在UI系统变量中的所有模板路径连接起来。因此,您必须指定相对路径或附加/作为解决方法。

解决方法

$f3 = Base::instance();
$f3->concat('UI', ';/');

<强>来源/参考

base.php#L2791中的联合$dir.$file是罪魁祸首。您的错误产生于以下几行。

更新/示例

$f3 = Base::instance();
$f3->concat('UI', ';/'); // Add support for absolute paths.

echo \Template::instance()
    ->render(__DIR__ . '/template.html');