它可能看起來有點硬,但是當你瞭解它的方案就變得超級簡單:
模型層處理有關數據所需的一切。它將默默地連接到模型中變量「useDbConfig」中聲明的數據庫配置(如果未聲明,它將連接到default
配置)。它們存儲在Models
文件夾中。 「處理關於數據的一切」意味着它從數據源獲取數據,驗證將要保存的數據,格式化數據等。
模型可以附加behavior
。把它看作OOP術語中的「界面」(不一樣,但有點接近)。它們提供它們之間的通用功能(例如,TranslateBehavior
使該模型的數據可以翻譯)。它們存儲在Models/Behavior
文件夾中。你可以在數組變量$actsAs
中調用它們,或者實時加載它們。例如:
public $actsAs = array('Translate');
控制器層處理將用數據完成的所有操作。它會以與控制器相同的名字靜靜地實例化模型以處理數據,但您可以告訴控制器實例許多不同的模型以滿足您的需求。它們存儲在Controllers
文件夾中。通常控制器中的函數被稱爲actions
,因爲當在您的服務器中處理HTTP請求時,它將被委託給您的控制器中的相應功能。假設,http://www.example.com/users/login將在UsersController
之內調用您的動作login()
。
控制器可以附加一個component
。它與behavior
相同,但是專門用於控制器。它們存儲在Controllers/Components
文件夾中。例如,PaginationComponent
可以使控制器可抓取的數據可分頁,因此您可以對其進行分類,按頁面劃分等。您可以在變量$components
中調用它,或者實時加載它。例如:
public $components = array('Paginate');
視圖圖層處理所有的演示文稿。這意味着他們擁有用戶將看到的所有HTML + Javascript。它在動作解決後從控制器調用。它默默地將視圖呈現在之內,這意味着,例如,當login()
動作完成時,它將渲染視圖View/Users/login.ctp
。視圖通常使用佈局default
進行渲染,但您可以在控制器內部的變量$layout
中對其進行更改。您可以通過控制器中的功能$set()
傳遞控制器中的變量來查看。
查看可以使用helpers
;它們與組件和行爲相同,但是對於這些意見。但是你必須在變量$helpers
中的控制器中聲明它們。它們存儲在Views/Helpers
文件夾中。例如,默認HtmlHelper
可讓您更輕鬆地製作一些標籤,例如<img>
,<a>
,<script>
或<link>
。
視圖也可以使用元素。它們是您可以在任何視圖或佈局中重用的塊。您只需在Views/Elements
文件夾中創建一個元素,並將其與$this->element('nameOfTheElement');
一起使用。
總之,您的登錄,您將需要一個User.php
模型中,UsersController.php
控制器和login.ctp
視圖。在控制器中,您將需要加載AuthComponent
,因爲它會處理登錄。在視圖中,您可能需要HtmlHelper
和FormHelper
,但它們是默認加載的。在控制器的login()
功能中,您只需檢查Auth->login()
是否成功,並採取適當的措施。
一旦你更有經驗,你可以看看fat models, skinny controllers
這個大會更有條理。
祝你好運!
您似乎已經閱讀了很多博客帖子,您是否還閱讀過官方文檔及其http://book.cakephp.org/2.0/en/tutorials-and-examples.html?另外:你應該總是提到你正在使用的確切cakephp版本。 – mark
@mark:我也讀過。但仍然沒有得到它。版本2.4.6。第一步:我能做些什麼? – Karuppiah
「我試過了,但沒有一個不行。」 - 你有什麼錯誤?這些博客哪一步實際上失敗了? – jimmymadon