2013-05-21 171 views
0

我有一個模板控制器。在這個控制器我加載相應的模板,require_once這樣的:輸出緩衝不呈現php內容

ob_start(); 
$userInfo = $user->userDetails($_SESSION["userId"]); 
require_once('/templates/1/file1.php'); 
$output = ob_get_clean(); 

File1.php(該文件是在模板控制器「要求」)需要訪問$userInfo然而,事實並非如此。我在做輸出緩衝區有問題嗎?

回答

2

我認爲問題是您的require_once失敗,因爲模板文件的路徑不正確。

它可能應該是這樣的:

require_once($_SERVER['DOCUMENT_ROOT'] . '/templates/1/file1.php'); 

require_once($global_template_path . '/templates/1/file1.php'); 

其中$global_template_path是一樣的東西/home/yoursite/app/module

+0

感謝您的回答。它實際上是'require_once($ _ SERVER ['DOCUMENT_ROOT']。'/templates/1/file1.php');'爲了簡潔起見,我只是修剪它。奇怪的是,file1.php中的HTML加載並通過輸出緩衝區輸出,但是php不包含 –

+0

在這種情況下,您可以發佈file1.php中的內容嗎? – drew010

+0

這只是一些PHP循環的HTML,比如'foreach($ userInfo as $ info)'它錯誤地指出「foreach在xx中的參數無效」它指的是在我的模板控制器中定義的'$ userInfo'。謝謝! –