View F3配置单元($F3)未定义的内部视图文件

View F3配置单元($F3)未定义的内部视图文件,view,fat-free-framework,View,Fat Free Framework,启动一个新的无脂肪框架(F3)项目时出现问题,即配置单元($F3)全局变量在视图文件中未定义/不可用。根据文件,f3美元应该在全球范围内可用。试图访问视图文件中的$f3时,我遇到了一个错误。下面是代码: 在index.php中: $f3->route('GET /','SomeController->index'); 在SomeController.php中: class SiteController { public function index($f3) {

启动一个新的无脂肪框架(F3)项目时出现问题,即配置单元($F3)全局变量在视图文件中未定义/不可用。根据文件,f3美元应该在全球范围内可用。试图访问视图文件中的$f3时,我遇到了一个错误。下面是代码:

在index.php中:

$f3->route('GET /','SomeController->index');
在SomeController.php中:

class SiteController
{

    public function index($f3)
    {
        $f3->set('title','Index');
        View::instance()->render('indexView.php');
    }

}
在indexView.php中

echo $f3->get('title');
输出

Internal Server Error

Fatal error: Call to a member function get() on a non-object
我通过显式地向视图传递$f3来解决这个问题,如下所示:

View::instance()->render('indexView.php', 'text/html', array('f3'=>$f3));
但是,你不应该这么做。根据文件:

string render ( string $file [, string $mime = 'text/html' [, array $hive = NULL ]] )
Note:
If no data $hive is provided, the global F3 hive is used.

配置单元内容被提取、HTML编码并传递给视图,但整个
$f3
实例不是这样

因此,在跑步时:

$f3->set('title','Index');
$f3->set('text','Hello');
View::instance()->render('indexView.php');
视图中将提供以下变量:

  • $title
  • $text

但是,
$f3
不会。

蜂巢内容被提取、HTML编码并传递给视图,但整个
$f3
实例不会

因此,在跑步时:

$f3->set('title','Index');
$f3->set('text','Hello');
View::instance()->render('indexView.php');
视图中将提供以下变量:

  • $title
  • $text

但是,
$f3
不会。

通常,您希望将视图变量划分为多个部分,但这取决于您对MVC结构的看法

但是,如果确实需要访问视图中的$f3配置单元,只需在视图顶部添加即可

global $f3;

// now you can use the HIVE
echo $f3->get('myVar');

通常,您希望保持视图变量的分区,但这取决于您对MVC结构的看法

但是,如果确实需要访问视图中的$f3配置单元,只需在视图顶部添加即可

global $f3;

// now you can use the HIVE
echo $f3->get('myVar');