2014-01-23 39 views
-1

我正在嘗試對CakePHP cms網站進行更改。我找到了「main_menu.cpt」文件,主菜單位於哪裏。繼現有的菜單我說我自己的:CakePHP - 如何鏈接到我創建的文件,並且不隨包提供

<li> 
    <a href="<?=$html->url('/'.$lang.'/orders');?>"<?=($page=='orders')?'class="active" ':''?>> 
    <?__('orders')?> 
    </a> 
</li>  

其指向文件orders.php但是當我點擊鏈接,我得到這個消息:

Not Found  
Error: The requested address '/en/orders' was not found on this server. 

在哪裏,我必須將文件上傳訂單.PHP? 我知道這聽起來很愚蠢,但是這個cms對我來說是全新的,甚至目錄結構也不能幫助我:)希望你能做到!

在此先感謝

編輯################

<?php  
Router::connect('/', array('controller' => 'dpages', 'action' => 'home', 'lang'=>'bg')); 
Router::connect('/:lang/', array('controller' => 'dpages', 'action' => 'home'), array('lang' => 'bg|en')); 
Router::connect('/:lang/pages/:action/*', array('controller' => 'dpages'), array('lang' => 'bg|en')); 
Router::connect('/:lang/:controller/:action/*', array('action' => 'index'), array('lang' => 'bg|en')); 
Router::connect('/pages/:action/*', array('controller' => 'dpages')); 
Router::connect('/dpages/*', array('controller' => 'dpages', 'action' => 'view')); 
Router::connect('/admin', array('admin'=>1, 'controller' => 'dpages', 'action' => 'home')); 
Router::connect('/tests', array('controller' => 'tests', 'action' => 'index')); 

?>

回答

1

CakePHP是一個框架。

您可能需要一個OrdersController,它具有每種方法的視圖文件。 檢查以瞭解其他頁面的構建方式(您在Controllers文件夾中具有哪些文件)。

如果您只是想添加一個內容頁面,對於訂單,您可以將它放在View/Pages文件夾中,並將其命名爲orders.ctp。 您可以訪問它site.com/pages/orders

添加以下行Config/routes.php(其他Router::connect線之間)

Router::connect('/:lang/orders', array('controller' => 'dpages', 'action' => 'orders'), array('lang' => 'bg|en')); 

轉到Controller/DPagesController.php並添加:

public function orders() { 
    // can be blank for now 
} 

轉到views/dpages文件夾並創建orders.ctp並將靜態窗體放在那裏。

然後再次嘗試鏈接。

+0

謝謝cornelb for幫我。我自己的頁面包含一個靜態訂單。我把它放在views/dpages文件夾中,但仍然得到這個錯誤..我做錯了什麼? – thecore7

+0

你可以粘貼你的'Config/routes.php'文件的內容嗎? – cornelb

+0

cornelb,請參閱我的更新請求代碼 – thecore7

0

CakePHP不是爲你添加額外的php文件而設計的,也不應該這樣。因此,我強烈建議您重寫您的orders.php文件中的任何內容以使用CakePHP框架。

但是,您可以將orders.php添加到您的應用程序/供應商文件夾中,然後將其包含在控制器的操作中(例如:include_once(APP . 'Vendor/orders.php');)。然後,您應該可以通過http://yourwebsite.com/controller/action訪問它,其中控制器是您選擇放置包含的控制器的名稱,操作是您選擇將包含放入的操作的名稱。

+0

謝謝凱,但我不知道如何使用你的答案..沒有經驗與fameworks .. – thecore7

相關問題