2014-03-13 126 views
1

我正在使用cakephp進行註冊和登錄表單。我是cakephp框架的新手。我已經下載並在我的系統上安裝了cakephp。我已經連接到我的數據庫表中。我在core.phpdatabase.php中做了一些更改。cakephp註冊和登錄表單

我按照這些教程做註冊和登錄表單。

http://alvinalexander.com/php/cakephp-user-registration-form-example-recipe

http://www.grasphub.com/2013/01/simplest-registration-form-in-cakephp/

http://karven.wordpress.com/2009/07/30/create-simple-user-authentication-using-cakephp-auth-component/

我已經試過一切。但是他們都不起作用。我不知道我需要在哪裏創建這些php文件。我也是新來的MVC設計模式...在這裏任何人都給我一步一步的過程來完成這個簡單的任務..我不問任何編碼在這裏..我想要一步一步的過程..

+2

您似乎已經閱讀了很多博客帖子,您是否還閱讀過官方文檔及其http://book.cakephp.org/2.0/en/tutorials-and-examples.html?另外:你應該總是提到你正在使用的確切cakephp版本。 – mark

+0

@mark:我也讀過。但仍然沒有得到它。版本2.4.6。第一步:我能做些什麼? – Karuppiah

+0

「我試過了,但沒有一個不行。」 - 你有什麼錯誤?這些博客哪一步實際上失敗了? – jimmymadon

回答

3

它可能看起來有點硬,但是當你瞭解它的方案就變得超級簡單:

  • 模型層處理有關數據所需的一切。它將默默地連接到模型中變量「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,因爲它會處理登錄。在視圖中,您可能需要HtmlHelperFormHelper,但它們是默認加載的。在控制器的login()功能中,您只需檢查Auth->login()是否成功,並採取適當的措施。

一旦你更有經驗,你可以看看fat models, skinny controllers這個大會更有條理。

祝你好運!

+0

我已經把view.ctp放到了我的視圖文件夾中。 view.ctp是一個註冊表單。現在我可以看到沒有錯誤的註冊表單。那我在哪裏可以做數據庫查詢?模型文件夾中的user.php? – Karuppiah

+0

你可以通過模型在'UsersController'的'view()'函數中調用你的查詢,就像'$ this-> User-> find/save'(取決於你的動作) – Eagle

+0

+1需要時間來寫所有這個的。 – skywalker