[英]cakephp registration and login form
我正在使用cakephp進行注冊和登錄表單。 我是cakephp框架的新手。 我已經在我的系統上下載並安裝了cakephp。 我已經連接到我的數據庫表。 我在core.php
和database.php
做了一些改動。
我正在按照這些教程進行注冊和登錄表單。
http://alvinalexander.com/php/cakephp-user-registration-form-example-recipe
http://www.grasphub.com/2013/01/simplest-registration-form-in-cakephp/
我試過了。 但它們都不起作用。 我不知道我需要在哪里創建這些php文件。 我也是MVC設計模式的新手......這里有人給我一些一步一步的程序來完成這個簡單的任務..我在這里不要求任何編碼..我想要一步一步的程序..
它可能看起來有點難,但當你理解它的方案時,它變得非常簡單:
模型層處理有關數據的所有內容。 它將靜默連接到模型中變量“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。 在解決操作后從控制器調用它。 它默默地呈現View/ControllerName/action.ctp
的視圖,這意味着,例如,當login()
動作完成時,它將呈現視圖View/Users/login.ctp
。 視圖通常使用布局default
進行渲染,但您可以在控制器內的變量$layout
更改它。 您可以通過控制器中的函數$set()
將變量從控制器傳遞到視圖。
視圖可以使用helpers
; 它們與組件和行為相同,但對於視圖。 但是你必須在變量$helpers
中在控制器中聲明它們。 它們存儲在Views/Helpers
文件夾中。 例如,默認的HtmlHelper
可以讓您更輕松地制作一些標簽,例如css的<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
的慣例fat models, skinny controllers
更有條理。
祝好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.