2013-07-18 94 views
0

我下面CakePHP的出現在頁面頂部型號代碼「入門」的位置:控制器/在CakePHP

http://book.cakephp.org/2.0/en/getting-started.html

一件事,我就死在是我創建的模型,控制器,和視圖帖子例如:

<docroot>/app/Controller/PostsController.php 
<docroot>/app/Model/Post.php 
<docroot>/app/View/Posts/index.ctp 

恰好如在上面的概述鏈接。問題是,我得到的錯誤:

錯誤:PostsController找不到。

和控制器代碼被被打印在頁面的頂部。

我終於想通了,我不得不添加

<?php [code] ?> 

左右,對於控制文件中指定的教程中的代碼。即intstead:

class PostsController extends AppController { 
    public $helpers = array('Html', 'Form'); 

    public function index() { 
     $this->set('posts', $this->Post->find('all')); 
    } 
} 

我:

<?php 
class PostsController extends AppController { 
    public $helpers = array('Html', 'Form'); 

    public function index() { 
     $this->set('posts', $this->Post->find('all')); 
    } 
} 
?> 

一旦我做到了,它的工作,有點。除此之外,我得到了頁面頂部打印的模型「代碼」。圍繞着與php轉義(如上面的控制器)解決了這個問題,但我擔心這暗示着我在設置蛋糕時錯誤地配置了某些東西。

我的問題:是教程錯誤?爲什麼不指定使用php轉義(或任何你稱之爲這些東西),如果他們需要得到這個東西的工作?或者,如果他們不需要,任何人都可以提出一個理由,在我的情況下,他們是需要的?也許我這一步之前已經配置錯誤的東西...

謝謝,我找了在SO過類似的問題,但無法找到一個,但請隨時告訴我,如果這是一個重複...

+0

只是要清楚:我*你*知道PHP/OO/MVC基礎。我的困惑源於這樣的事實,即教程將代碼塊視爲整個文件內容。由於您必須在代碼中添加php標籤,顯然不是這種情況。我只想確定沒有一些配置我設置錯誤,這將允許解釋文件*不帶* php標記。 – snuggles

+0

有沒有這樣的選項,因爲當它是新的時,php在同一個文件中被用來和HTML一起使用。今天,您想要將視圖(HTML)與業務邏輯分開。另請參閱http:// stackoverflow。com/questions/4410704/why-will-one-omit-the-close-tag – burzum

+0

是的,我可以看到我犯了一個錯誤,認爲這很容易,因爲我已經使用了perl和python。但是你關於它如何被使用的觀點很好。謝謝! – snuggles

回答

3

My question: is the tutorial wrong? Why would it not specify the use of the php escapes (or whatever you call those things) if they are needed to get this stuff working?

本教程希望獲得最基本的PHP知識。您可能想要start here閱讀關於基本php tags。如果您不知道至少基本的PHP,面向對象的編程以及對OOP設計模式(稱爲MVC - 模型視圖控制器)的理解,那麼您將無法使用CakePHP。

在一個PHP文件中只有你definitly需要開始標記<?php,但你不希望將其關閉。對於原因,檢查這個答案:

Why would one omit the close tag?

+0

嗯,問題是,教程提供的代碼是完整的,沒有任何跡象表明它是大塊的子集。沒有理由認爲php標籤應該包含教程中提供的代碼。這對我來說似乎很奇怪,這些標籤不會包含在代碼示例中。即使這是bog標準的php,事實上php *可能會*以純文本的形式讀取這些文件並在沒有標籤的情況下編譯它們,所以我不相信我的混淆是無根據的。 – snuggles

+0

我對你的評論的一部分是錯誤的:*有*理由假設PHP標籤應該啓動任何PHP文件。我仍然認爲蛋糕教程不應該提供基本上不完整的代碼(例如,當您提供一個perl文件示例時,大多數人都會將這些東西包括在內[你的perl安裝在這裏],所以它似乎很奇怪,這不會是PHP的情況),但我同意這是一種語言自負,我感謝你的回答。 – snuggles