cakephp注册和登录表单

时间:2014-03-13 11:33:30

标签: php cakephp user-registration cakephp-model

我正在使用cakephp进行注册和登录表单。我是cakephp框架的新手。我已经在我的系统上下载并安装了cakephp。我已经连接到我的数据库表。我在core.phpdatabase.php进行了一些更改。

我正在按照这些教程进行注册和登录表单。

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设计模式的新手......这里有人给我一些一步一步的程序来完成这个简单的任务..我在这里不要求任何编码..我想要一步一步的程序..

1 个答案:

答案 0 :(得分:3)

看起来有点困难,但是当你了解它的方案时,它变得非常简单:

  • 模型层处理有关数据的所有内容。它将静默连接到变量" useDbConfig"中声明的数据库配置。在模型中(如果没有声明,它将连接到default config)。它们存储在Models文件夹中。 "处理有关数据的所有内容"表示它从数据源获取数据,验证将保存的数据,格式化数据等。

    模型可以附加behavior。把它想象成一个"界面"在OOP术语中(不一样,但有些接近)。它们在它们之间提供了通用功能(例如,TranslateBehavior使该模型的数据可以翻译)。它们存储在Models/Behavior文件夹中。您可以在数组变量$actsAs中调用它们,或者动态加载它们。例如:

    public $actsAs = array('Translate');
    
  • 控制器层处理将对数据执行的所有操作。它将以与控制器相同的名称静默实例化模型以处理数据,但您可以告诉控制器实例化多种不同的模型以满足您的需求。它们存储在Controllers文件夹中。通常,控制器中的函数称为actions,因为在服务器中处理HTTP请求时,它将被委派给控制器中的相应函数。说,http://www.example.com/users/login会在login()内调用您的操作UsersController

    控制器可以附加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可让您更轻松地制作一些代码,例如<img><a><script><link>代表css。

    视图也可以使用元素。它们是一种可以在任何视图或布局中重用的块。您只需在Views/Elements文件夹中创建一个元素,并将其与$this->element('nameOfTheElement');一起使用。

总之,您要登录,您需要User.php模型,UsersController.php控制器和login.ctp视图。在控制器中,您需要加载AuthComponent,因为它将处理登录。在视图中,您可能需要HtmlHelperFormHelper,但默认情况下会加载它们。在控制器的login()函数中,您只需检查Auth->login()是否成功,并采取适当的操作。

一旦您更有经验,就可以看一下名为fat models, skinny controllers的惯例更有条理。

祝你好运!