Fat Free Framework中的变量访问问题

时间:2014-07-06 08:30:38

标签: php variables global-variables fat-free-framework

我在Fat Free Framework中访问全局变量的问题。特别是,唯一的问题是获取' file_path'来自代码的变量:

$f3->route('GET /d/@id',
function ($f3) {

    // Lots of DB code, where which in the end returns $file_id and $file_name

    $file = "upload/";
    $file .= $file_id . "/";

    $file .= $file_name;

    $f3->set('file_path', $file);

    $f3->set('content','download.htm');
    echo View::instance()->render('layout.htm')

}
);

然后我从download.htm调用/ getfile:

<a href="/getfile"> GET IT! </a>

然后我尝试访问&#39; file_path&#39;来自另一条路线的变量,但没有$ f3-&gt; get(&#39; file_path&#39;)返回NULL:

$f3->route('GET /getfile',
function ($f3) {

    $file = $f3->get('file_path');

    var_dump($file);
}
);

此外,通过$ f3-&gt; get()访问的其他全局变量工作正常。例如

$f3->route('GET /getfile',
    function ($f3) {

    $db = $f3->get('DB');

    var_dump($db);
}
);

完美地获得$ db变量。更改本地和全局变量名称并没有帮助。关于发生了什么的任何想法? :S

1 个答案:

答案 0 :(得分:1)

file_path只有在您/d/@id时才能访问。您必须缓存该变量或将其保存在SESSION中。您可以访问DB,因为您将其设置在任何路线之外。

$f3->route('GET /d/@id',
function ($f3) {
    // Lots of DB code, where which in the end returns $file_id and $file_name

    $file = "upload/";
    $file .= $file_id . "/";

    $file .= $file_name;

    $f3->set('SESSION.file_path', $file);

    $f3->set('content','download.htm');
    echo View::instance()->render('layout.htm')
}
);


$f3->route('GET /getfile',
function ($f3) {

    $file = $f3->get('SESSION.file_path'); // you might clear the file_path then

    var_dump($file);
}
);