2011-12-02 24 views
1

我用下面的代碼中的IndexController:腳本「index.phtml」未找到

$view = new Zend_View(array('scriptPath' =>'C:\Users\398853\Documents\NetBeansProjects\PhpProject3\application\views\scripts')); 
echo $view->render('index.phtml'); 

但作爲script 'index.phtml' not found in path (C:\Users\398853\Documents\NetBeansProjects\PhpProject3\application\views\scripts/)

我想是因爲在腳本路徑發生錯誤「/」,而不是增加則顯示錯誤'\'結尾。如果是,那麼解決方案是什麼?

回答

1

您需要的相對路徑傳遞到腳本的基本路徑,使該腳本路徑:

$view = new Zend_View(array('scriptPath' =>'C:\Users\398853\Documents\NetBeansProjects\PhpProject3\application\views\scripts')); 
echo $view->render('index/index.phtml'); 

應該工作。這是期待你的意思是索引控制器的索引行爲。

目錄分隔符對PHP並不重要。如果你想在保存側100%使用恆DIRECTORY_SEPARATOR這樣的:

$path = array(APPLICATION_PATH, 'views', 'scripts'); 
$view = new Zend_View(array('scriptPath' => implode(DIRECTORY_SEPARATOR, $path)); 
+0

謝謝解決問題 – ryan

0

你應該總是使用/,而不是\當您指定的路徑,因爲它無論是在Windows和Linux

$view = new Zend_View(array('scriptPath' =>'C:/Users/398853/Documents/NetBeansProjects/PhpProject3/application/views/scripts')); 

作品和你正在做的,我認爲你一定要使用相對路徑,而不是絕對的

+0

Thanks.Problem Solved ... – ryan

0

在PHP中,始終使用正斜槓作爲路徑。 PHP將轉化爲特定的OS-目錄分隔爲您提供:

$view = new Zend_View(array('scriptPath' =>'C:/Users/398853/Documents/NetBeansProjects/PhpProject3/application/views/scripts')); 

當您使用反斜槓,PHP有NO的方式來知道你實際上指定路徑,所以將它們視爲逃逸,所以實際上你的路徑是:

C:Users398853DocumentsNetBeansProjectsetc.... 

這是極不可能在你的機器上存在的。

+0

根據OP提供的錯誤消息,似乎'Zend_View'中的代碼正在轉義路徑分隔符(如果它是\)。 –

+0

謝謝..已解決問題 – ryan

0

斜線的方向實際上應該不重要。你得到這個錯誤,因爲沒有文件名爲index.phtml .. \意見\腳本

+0

感謝解決問題 – ryan

0

使用的IDE,檢查文件的正確上傳。只是掙扎了二十分鐘才發現。