<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_sunfishlu</title><subtitle type="text">做好自己！永远都不要说放弃！</subtitle><id>http://feed.cnblogs.com/blog/u/23295/rss</id><updated>2011-05-12T14:22:20Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/23295/rss"/><entry><id>http://www.cnblogs.com/sunfishlu/archive/2011/05/12/2044866.html</id><title type="text">一步一步学习Windows Azure（二）Azure之Hello World</title><summary type="text">在这篇文章中，我们将使用.net在Azure中创建Hello World程序，环境为VS2010和Azure SDK 1.4。 点击OK后，为让我们选择一个角色，这里我们增添asp.net web role。 这就会创建两个项目，WindowsAzureProject1（Azure service项目）和WebRole1（asp.net项目），Azure service项目用于配置应用程序，创建部...</summary><published>2011-05-12T14:22:00Z</published><updated>2011-05-12T14:22:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2011/05/12/2044866.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2011/05/12/2044866.html"/><content type="html">&lt;p&gt;在这篇文章中，我们将使用.net在Azure中创建Hello World程序，环境为VS2010和Azure SDK 1.4。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122220186880.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122220286541.jpg" width="558" height="357" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;点击OK后，为让我们选择一个角色，这里我们增添asp.net web role。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122220349677.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122220417371.jpg" width="558" height="393" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;这就会创建两个项目，WindowsAzureProject1（Azure service项目）和WebRole1（asp.net项目），Azure service项目用于配置应用程序，创建部署包，asp.net项目非常类似普通的web项目。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122220475457.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122220564746.png" width="337" height="443" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;在web role default.aspx中，&lt;/p&gt;  &lt;p&gt;&amp;lt;asp:Content ID=&amp;quot;BodyContent&amp;quot; runat=&amp;quot;server&amp;quot; ContentPlaceHolderID=&amp;quot;MainContent&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;Hello World!&lt;/p&gt;  &lt;p&gt;&amp;lt;/asp:Content&amp;gt;&lt;/p&gt;  &lt;p&gt;现在我们就完成了，使WindowsAzureProject1成为启动项目，运行后，云仿真环境会进行初始化，并且会启动development storage。下图中的蓝色图标就是Windows Azure模拟器。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122220586613.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122221001304.png" width="159" height="41" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;如果是第一次运行Windows Azure项目，你还将会看到Development Storage初始化窗口。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122221053752.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122221148679.png" width="478" height="340" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;点击OK按钮后，会看到下面的页面。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122221211914.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image009" border="0" alt="clip_image009" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122221258995.jpg" width="558" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;如果你点击了Compute Emulator，选择Show Compute Emulator UI，Azure Service将会运行在你的机器上。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/20110512222132528.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122221401419.png" width="279" height="161" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;WindowsAzureProject1，刚才所定义的服务，会运行webrole的一个单独实例。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105122221575187.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/20110512222215658.jpg" width="558" height="419" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sunfishlu/aggbug/2044866.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sunfishlu/archive/2011/05/12/2044866.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sunfishlu/archive/2011/05/09/2041646.html</id><title type="text">一步一步学习Windows Azure（一）概述</title><summary type="text">Windows Azure概述 Windows Azure主要是为开发者提供一个平台，运行在微软数据中心的服务器和网络基础设施上，通过公共互联网对外提供服务，下图显示了Windows Azure Pl...</summary><published>2011-05-09T14:29:00Z</published><updated>2011-05-09T14:29:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2011/05/09/2041646.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2011/05/09/2041646.html"/><content type="html">&lt;p&gt;&lt;strong&gt;Windows Azure概述&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure主要是为开发者提供一个平台，运行在微软数据中心的服务器和网络基础设施上，通过公共互联网对外提供服务，下图显示了&lt;strong&gt;Windows Azure Platform&lt;/strong&gt;的主要组成组件。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105092228385510.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="AzureArchitecture" border="0" alt="AzureArchitecture" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105092228456212.png" width="644" height="243" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Azure Platform&lt;/strong&gt;主要是由三部分组成：&lt;/p&gt;  &lt;p&gt;1：Development runtime：模拟Azure runtime，用来测试、调试、并且在部署到云端前，在本地环境下调整应用程序。&lt;/p&gt;  &lt;p&gt;2：Azure runtime：包括了云构造、存储服务和windows azure操作系统。&lt;/p&gt;  &lt;p&gt;3：Application：运行自Azure runtime，一组基于互联网的服务可用来组装应用程序，这些服务包括了.NET Services、SQL Azure和Live Services。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Azure概念&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;内部部署应用程序（on-premises）创建在组织结构中，可以通过internet改变Azure提供的服务，然而，从云端平台运行应用程序，应用程序必须是由.NET Framework开发的，Azure应用程序和on-premises应用程序都可以通过RESTful的方式来访问Azure存储服务。云存储不再依赖于关系模型来满足internet的可伸缩性，Windows Azure Storage Servies 提供了一种在云端存储持久化数据的功能。 其主要包括以下几种基础的服务：Blob服务，Queue 服务和Table 服务。&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105092228548842.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105092229018083.png" width="577" height="487" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;通过上图，我们知道Azure至少会做两件事：&lt;/p&gt;  &lt;p&gt;1：寄宿（Host）和运行微软数据中心的应用程序。&lt;/p&gt;  &lt;p&gt;2：提供存储服务。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Roles（角色）&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;部署到Windows Azure上的成熟扮演着以下两种角色：web role和worker role&lt;/p&gt;  &lt;p&gt;1：web role&lt;/p&gt;  &lt;p&gt;每一个web role实例通过IIS 7.0接收HTTP/HTTPS请求，简单地说，Web Role就是ASP.NET Applicantion，是你本地ASP.NET Application的云端版本!支持HTTP/HTTPS协议，还能提供WCF服务。&lt;/p&gt;  &lt;p&gt;2：worker role&lt;/p&gt;  &lt;p&gt;是一种后台执行(Running On Background)的应用程序，运行.Net框架代码的后台进程应用程序。Worker Role与 Web Role 不同的是，它通常不与使用者直接互动，而是在后台访问任何网络资源、数据源并进行操作。它不开放外部访问接口，但是在接到命令后会毫无怨言地依次执行 (Queue service里的消息队列能引导它的工作)，这有点类似架设在 Windows Azure 上的 Windows Service，而且它又可以支持 HTTP/HTTPS 或 TCP 的通讯模式，特别适用于不限 HTTP 通讯的服务应用程序，像是一般的 WCF 服务。&lt;/p&gt;  &lt;p&gt;3：Azure Fabric&lt;/p&gt;  &lt;p&gt;web role和worker role最主要的区别就是前者可以通过internet接收http信息，后者不能。&lt;/p&gt;  &lt;p&gt;两者都是运行自Azure Fabric，Azure Fabric是一种新的技术，可以理解成Azure运行时的上下文（Context），下图为一Azure应用程序的概念：&lt;/p&gt;  &lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105092229062014.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/201105/201105092229101062.png" width="666" height="343" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sunfishlu/aggbug/2041646.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sunfishlu/archive/2011/05/09/2041646.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sunfishlu/archive/2010/05/25/1744006.html</id><title type="text">一步一步学习CakePHP（三）model</title><summary type="text">&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; model，它使领域逻辑从表现层和独立的业务逻辑中剥离出来，从理论上来说，model实现了ActiveRecord，所以它不仅仅是是一个数...</summary><published>2010-05-25T15:41:00Z</published><updated>2010-05-25T15:41:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2010/05/25/1744006.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2010/05/25/1744006.html"/><content type="html">&lt;p&gt;model，它使领域逻辑从表现层和独立的业务逻辑中剥离出来，从理论上来说，model实现了ActiveRecord，所以它不仅仅是是一个数据的抽象层，此外，还提供了许多有用的方法，可以方便简洁的操作数据库，在CakePHP中，一个model经常代表了数据库中的某张表。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;一：创建数据库和&lt;/strong&gt;&lt;strong&gt;model&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;我们首先创建数据库和表：&lt;/p&gt;  &lt;p&gt;CREATE DATABASE `data-access`;&lt;/p&gt;  &lt;p&gt;USE `data-access`;    &lt;br /&gt;CREATE TABLE `books` (     &lt;br /&gt;`id` int( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,     &lt;br /&gt;`isbn` varchar( 10 ) NOT NULL ,     &lt;br /&gt;`title` varchar( 127 ) NOT NULL ,     &lt;br /&gt;`description` text NOT NULL ,     &lt;br /&gt;`author_name` varchar( 127 ) NOT NULL     &lt;br /&gt;)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;model&lt;/strong&gt;&lt;strong&gt;：&lt;/strong&gt;&lt;strong&gt;book.php&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class Book extends AppModel{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Book';     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;controller:books_controller.php&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class BooksController extends AppController{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Books';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $scaffold;     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;注意此处的var $scaffold，&lt;strong&gt;脚手架&lt;/strong&gt;会创建一个基本的应用程序，会自动创建CRUD功能。&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles75080E8/image3.png"&gt;&lt;img title="clip_image002" style="border: 0px none; display: inline;" alt="clip_image002" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPmodel_14C29/clip_image002_683e6dd9-0be1-4562-9b70-2c041cff4331.gif" width="686" border="0" height="402" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;二：检索数据&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;CakePHP中，已经存在了很多方法，可以使开发者很方便地从数据库检索到数据。&lt;/p&gt;  &lt;p&gt;修改books_controller.php，去掉&lt;strong&gt;脚手架：&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class BooksController extends AppController{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Books';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //var $scaffold;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function index(){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $books = $this-&amp;gt;Book-&amp;gt;find('all',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'fields' =&amp;gt;array(     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Book.isbn',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Book.title',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Book.author_name'     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ),     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'order' =&amp;gt; 'Book.title ASC'     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;set('books',$books);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;创建&lt;/strong&gt;&lt;strong&gt;/app/views/books/index.ctp&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;table&amp;gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;thead&amp;gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;ISBN&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Author&amp;lt;/th&amp;gt;     &lt;br /&gt;&amp;nbsp; &amp;lt;/thead&amp;gt;     &lt;br /&gt;&amp;nbsp; &amp;lt;?php foreach($books as $book): ?&amp;gt;     &lt;br /&gt;&amp;nbsp; &amp;lt;tr&amp;gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $book['Book']['isbn'] ?&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $book['Book']['title'] ?&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $book['Book']['author_name'] ?&amp;gt;&amp;lt;/td&amp;gt;     &lt;br /&gt;&amp;nbsp; &amp;lt;/tr&amp;gt;     &lt;br /&gt;&amp;nbsp; &amp;lt;?php endforeach; ?&amp;gt;     &lt;br /&gt;&amp;lt;/table&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;CakePHP&lt;/strong&gt;中，一个model的实例，会被当作controller的属性，如$this-&amp;gt;Book，而find()就是book model的一个方法，第一个参数all，就是说明需要获得全部的数据。&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles75080E8/image4.png"&gt;&lt;img title="clip_image004" style="border: 0px none; display: inline;" alt="clip_image004" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPmodel_14C29/clip_image004_f7ccbf31-f8a6-4024-b3f8-c94cd41cfeba.gif" width="606" border="0" height="292" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;find()方法是非常灵活的，如一个类似这样的SQL查询&lt;/p&gt;  &lt;p&gt;SELECT `Book`.`isbn`, `Book`.`title`, `Book`.`author_name`    &lt;br /&gt;FROM `books` AS `Book`     &lt;br /&gt;WHERE `Book`.`title` LIKE 'A%'     &lt;br /&gt;ORDER BY `Book`.`isbn` DESC     &lt;br /&gt;LIMIT 2;&lt;/p&gt;  &lt;p&gt;我们可以用find()来实现：&lt;/p&gt;  &lt;p&gt;'conditions' =&amp;gt; array('Book.title LIKE' =&amp;gt; 'A%'),&lt;/p&gt;  &lt;p&gt;下面详细叙述一下find的参数，第一个可以是all、first、count，第二个参数为一数组，数组的key可以是：conditions、fields、order、limit、offset。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;三：保存数据&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;在&lt;/strong&gt;&lt;strong&gt;books_controller.php&lt;/strong&gt;&lt;strong&gt;增加&lt;/strong&gt;&lt;strong&gt;add():&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;function add(){    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!empty($this-&amp;gt;data)){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;Book-&amp;gt;create();     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!!$this-&amp;gt;Book-&amp;gt;save($this-&amp;gt;data)){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;Session-&amp;gt;setFlash('Book is Saved!',true);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;redirect(array('action'=&amp;gt;'index'));     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;app/views/books/add.ctp:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;?php echo $form-&amp;gt;create('Book');?&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;fieldset&amp;gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;legend&amp;gt;Add New Book&amp;lt;/legend&amp;gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $form-&amp;gt;input('isbn');     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $form-&amp;gt;input('title');     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $form-&amp;gt;input('description');     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $form-&amp;gt;input('author_name');     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/fieldset&amp;gt;     &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;?php echo $form-&amp;gt;end('Submit');?&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles75080E8/image8.png"&gt;&lt;img title="clip_image006" style="border: 0px none; display: inline;" alt="clip_image006" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPmodel_14C29/clip_image006_8de659db-dd4e-463b-8fbf-ec41a2377fbc.gif" width="693" border="0" height="759" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;在add中，我们首先判断是否从view中返回数据，如果没有返回，那么将会呈现view，当我们提交form表单的时候，数据将会提交到add action。&lt;/p&gt;  &lt;p&gt;我们用&lt;strong&gt;Book&lt;/strong&gt; model作为参数，传给FormHelper的create方法，然后，使用其input方法添加input元素，并且使用数据库表中的字段名称作为参数，这将会帮助FormHelper自动绑定。最后，按下提交按钮，所有的数据将会被提交给add，提交的数据可以通过controller的属性$this-&amp;gt;data获得。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;四：更新记录&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;在&lt;/strong&gt;&lt;strong&gt;books_controller.php&lt;/strong&gt;&lt;strong&gt;增加&lt;/strong&gt;&lt;strong&gt;edit():&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;function edit($id=null){   &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!$id &amp;amp;&amp;amp; empty ($this-&amp;gt;data)){    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;Session-&amp;gt;setFlash('Invalid Book',true);    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;redirect(array('action'=&amp;gt;'index'));    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(empty ($this-&amp;gt;data)){    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;data = $this-&amp;gt;Book-&amp;gt;read(null,$id);    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else{    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;Book-&amp;gt;create();    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!!$this-&amp;gt;Book-&amp;gt;save($this-&amp;gt;data)){    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;Session-&amp;gt;setFlash('已经更新',true);    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;redirect(array('action'=&amp;gt;'index'),null,true);    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;app/views/books/edit.ctp:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;?php echo $form-&amp;gt;create('Book');?&amp;gt;   &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;fieldset&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;legend&amp;gt;Edit Book&amp;lt;/legend&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $form-&amp;gt;input('id');    &lt;br /&gt;echo $form-&amp;gt;input('isbn');    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $form-&amp;gt;input('title');    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $form-&amp;gt;input('description');    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $form-&amp;gt;input('author_name');    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/fieldset&amp;gt;    &lt;br /&gt;&amp;lt;?php echo $form-&amp;gt;end('Submit');?&amp;gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;修改&lt;/strong&gt;&lt;strong&gt;app/views/books/index.ctp:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;table&amp;gt;   &lt;br /&gt;&amp;nbsp; &amp;lt;thead&amp;gt;    &lt;br /&gt;&lt;strong&gt;&amp;lt;th&amp;gt;ISBN&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Author&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Actions&amp;lt;/th&amp;gt;&lt;/strong&gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;/thead&amp;gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;?php foreach($books as $book): ?&amp;gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;tr&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $book['Book']['isbn'] ?&amp;gt;&amp;lt;/td&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $book['Book']['title'] ?&amp;gt;&amp;lt;/td&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $book['Book']['author_name'] ?&amp;gt;&amp;lt;/td&amp;gt;    &lt;br /&gt;&lt;strong&gt;&amp;lt;td&amp;gt;&amp;lt;?php echo $html-&amp;gt;link('&lt;/strong&gt;&lt;strong&gt;编辑&lt;/strong&gt;&lt;strong&gt;','edit/'.$book['Book']['id'])&lt;/strong&gt;&lt;strong&gt;     &lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;/strong&gt;&lt;strong&gt;     &lt;br /&gt;&lt;/strong&gt;&amp;nbsp; &amp;lt;/tr&amp;gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;?php endforeach; ?&amp;gt;    &lt;br /&gt;&amp;lt;/table&amp;gt; &lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles75080E8/image%5b4%5d.png"&gt;&lt;img title="clip_image008" style="border: 0px none; display: inline;" alt="clip_image008" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPmodel_14C29/clip_image008_646b3a97-9fea-4145-b68d-cb014299aa70.gif" width="685" border="0" height="395" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles75080E8/image%5b8%5d.png"&gt;&lt;img title="clip_image010" style="border: 0px none; display: inline;" alt="clip_image010" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPmodel_14C29/clip_image010_d585f7d4-807b-4661-b844-87d5b5cd6ffe.gif" width="653" border="0" height="755" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;由此可见，save()在add和edit中都可以使用，不同的是，在edit中，id主键必须在$data中存在。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;五：删除记录&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;在&lt;/strong&gt;&lt;strong&gt;books_controller.php&lt;/strong&gt;&lt;strong&gt;增加&lt;/strong&gt;&lt;strong&gt;delete():&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;function delete($id = null){   &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!$id){    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;Session-&amp;gt;setFlash('Invalid Book',true);    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if($this-&amp;gt;Book-&amp;gt;del($id)){    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;Session-&amp;gt;setFlash('已经删除',true);    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else{    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;Session-&amp;gt;setFlash('删除失败',true);    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;redirect(array('action'=&amp;gt;'index'));    &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;修改&lt;/strong&gt;&lt;strong&gt;app/views/books/index.ctp:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;table&amp;gt;   &lt;br /&gt;&amp;nbsp; &amp;lt;thead&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;th&amp;gt;ISBN&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Author&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Actions&amp;lt;/th&amp;gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;/thead&amp;gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;?php foreach($books as $book): ?&amp;gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;tr&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $book['Book']['isbn'] ?&amp;gt;&amp;lt;/td&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $book['Book']['title'] ?&amp;gt;&amp;lt;/td&amp;gt;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $book['Book']['author_name'] ?&amp;gt;&amp;lt;/td&amp;gt;    &lt;br /&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;?php echo $html-&amp;gt;link('&lt;/strong&gt;&lt;strong&gt;编辑&lt;/strong&gt;&lt;strong&gt;','edit/'.$book['Book']['id'])&lt;/strong&gt;&lt;strong&gt;     &lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;gt;&lt;/strong&gt;&lt;strong&gt;     &lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;?php echo $html-&amp;gt;link('&lt;/strong&gt;&lt;strong&gt;删除&lt;/strong&gt;&lt;strong&gt;', array('action'=&amp;gt;'delete',&lt;/strong&gt;&lt;strong&gt;     &lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $book['Book']['id']) ) ?&amp;gt;&lt;/strong&gt;&lt;strong&gt;     &lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/td&amp;gt;&lt;/strong&gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;/tr&amp;gt;    &lt;br /&gt;&amp;nbsp; &amp;lt;?php endforeach; ?&amp;gt;    &lt;br /&gt;&amp;lt;/table&amp;gt; &lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles75080E8/image%5b12%5d.png"&gt;&lt;img title="clip_image012" style="border: 0px none; display: inline;" alt="clip_image012" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPmodel_14C29/clip_image012_ab767a9f-e7f0-4c9a-b59a-e48d6fafae12.gif" width="645" border="0" height="398" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sunfishlu/aggbug/1744006.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sunfishlu/archive/2010/05/25/1744006.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sunfishlu/archive/2010/05/23/1741886.html</id><title type="text">一步一步学习CakePHP（二）controllers</title><summary type="text">我们已经知道，controllers就是负责处理客户端的请求，实现models和views的交互。在CakePHP中，在controller中的每一个公共的方法都被叫做“action”，每一个acti...</summary><published>2010-05-22T19:45:00Z</published><updated>2010-05-22T19:45:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2010/05/23/1741886.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2010/05/23/1741886.html"/><content type="html">&lt;p&gt;我们已经知道，controllers就是负责处理客户端的请求，实现models和views的交互。在CakePHP中，在controller中的每一个公共的方法都被叫做&amp;#8220;action&amp;#8221;，每一个action就会代表一个url，在浏览器请求此url时，控制器将会使用model来操作和处理数据，当数据被处理后，那么控制器把结果从model被传送到view。&lt;/p&gt;  &lt;p&gt;我们接下来会学习控制器的具体细节。&lt;/p&gt;  &lt;p&gt;一：与model的交互&lt;/p&gt;  &lt;p&gt;一般说来，一个控制器会处理一个对于model的业务逻辑，控制器就会自动地找到对应的model。但是这也不是绝对的，有时，我们也需要某控制器不依赖于任何model，这时候，需要配置控制器。举例说明，&lt;/p&gt;  &lt;p&gt;控制器：books_controller.php&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class BooksController extends AppController{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Books';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $uses = array();     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function index(){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;view：index.ctp &lt;/p&gt;  &lt;p&gt;&amp;lt;h2&amp;gt;the China-pub website&amp;lt;/h2&amp;gt;    &lt;br /&gt;&amp;lt;p&amp;gt;New Books Comming Soon!&amp;lt;/p&amp;gt;&lt;/p&gt;  &lt;p&gt;在这个控制器中，定义了一个属性$uses,它明确定义了控制器相关的model，如果不定义，控制器将会根据名称来找到对应的model，如果赋予一个空的数组，也就是说，没有用的任何的model。&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image14.png"&gt;&lt;img title="clip_image002" style="border: 0px none; display: inline;" alt="clip_image002" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image002_c5abd369-eb90-4031-ab66-9c8f69a08456.gif" width="618" border="0" height="349" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;综上：控制器和model的关联有两种方式，一是自动绑定，而是人为手工绑定。如：$uses = array ( 'ModelName1', 'ModelName2' ) 。&lt;/p&gt;  &lt;p&gt;二：传送数据到view&lt;/p&gt;  &lt;p&gt;CakePHP为控制器的action定义恰当的view文件，控制器也提供给view处理完成后的数据。如：$this-&amp;gt;set($book);可以用set自动把数据传送到view。&lt;/p&gt;  &lt;p&gt;控制器：books_controller.php&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class BooksController extends AppController{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Books';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $uses = array();     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function index(){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;set('page_heading','china-pub book store');     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $book = array(     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'book_title' =&amp;gt; 'asp.net 3.5服务器控件开发',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'author' =&amp;gt; '郑健',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'release_date' =&amp;gt; '2009.2'     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;set($book);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;pageTitle = '欢迎来到china-pub';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;view：index.ctp &lt;/p&gt;  &lt;p&gt;&amp;lt;h2&amp;gt;&amp;lt;?php echo $page_heading; ?&amp;gt;&amp;lt;/h2&amp;gt;    &lt;br /&gt;&amp;lt;dl&amp;gt;     &lt;br /&gt;&amp;lt;lh&amp;gt;&amp;lt;?php echo $bookTitle; ?&amp;gt;&amp;lt;/lh&amp;gt;     &lt;br /&gt;&amp;lt;dt&amp;gt;author:&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;?php echo $author; ?&amp;gt;&amp;lt;/dd&amp;gt;     &lt;br /&gt;&amp;lt;dt&amp;gt;Release Date:&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;?php echo $releaseDate; ?&amp;gt;&amp;lt;/dd&amp;gt;     &lt;br /&gt;&amp;lt;/dl&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image15.png"&gt;&lt;img title="clip_image004" style="border: 0px none; display: inline;" alt="clip_image004" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image004_e98d6e9e-54c3-4b93-9778-a184a69a9951.gif" width="629" border="0" height="363" /&gt;&lt;/a&gt;    &lt;br /&gt;三：带有参数的控制器action&lt;/p&gt;  &lt;p&gt;控制器：books_controller.php&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class BooksController extends AppController{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Books';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $uses = array();     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function index( $id = 0 ){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;set('page_heading','china-pub book store');     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $book = array(     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '0' =&amp;gt; array(     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'book_title' =&amp;gt; 'asp.net 3.5服务器控件开发',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'author' =&amp;gt; '郑健',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'release_date' =&amp;gt; '2009.2'     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ),     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '1' =&amp;gt; array(     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'book_title' =&amp;gt; '银光志',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'author' =&amp;gt; '魏永超',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'release_date' =&amp;gt; '2009.12'     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $id = intval($id);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( $id &amp;lt;0 || $id &amp;gt;= count($book)){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $id = 0;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;set($book[$id]);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;pageTitle = '欢迎来到china-pub';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;接下来我们看下列链接&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://localhost:8080/applogic/Books/index/0"&gt;http://localhost:8080/applogic/Books/index/0&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image25.png"&gt;&lt;img title="clip_image006" style="border: 0px none; display: inline;" alt="clip_image006" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image006_1f10a3ef-47f1-46a9-8205-c2d330ced75b.gif" width="630" border="0" height="367" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://localhost:8080/applogic/Books/index/1"&gt;http://localhost:8080/applogic/Books/index/1&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image26.png"&gt;&lt;img title="clip_image008" style="border: 0px none; display: inline;" alt="clip_image008" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image008_69c8de3b-fff7-423c-8501-059821c2a52e.gif" width="630" border="0" height="366" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://localhost:8080/applogic/Books/index/aaa"&gt;http://localhost:8080/applogic/Books/index/aaa&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image27.png"&gt;&lt;img title="clip_image010" style="border: 0px none; display: inline;" alt="clip_image010" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image010_9c58dbb5-d8ab-44d1-bf15-d2b34365c402.gif" width="628" border="0" height="363" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;如果存在多个参数的话，举例说明：&lt;/p&gt;  &lt;p&gt;控制器，maths_controller.php&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class MathsController extends AppController{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Maths';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $uses = array(); &lt;/p&gt;  &lt;p&gt;function add_digits($digit1 = 0, $digit2 = 0, $digit3 = 0 ){    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $sum = intval($digit1) + intval($digit2) + intval($digit3);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;set('sum',$sum);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;view：&lt;/p&gt;  &lt;p&gt;&amp;lt;h2&amp;gt;The sum is equal to &amp;lt;?php echo $sum; ?&amp;gt;&amp;lt;/h2&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image4.png"&gt;&lt;img title="clip_image012" style="border: 0px none; display: inline;" alt="clip_image012" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image012_b3cbf028-7a10-48c0-ac51-54291472bc60.gif" width="625" border="0" height="368" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;四：从&lt;/strong&gt;&lt;strong&gt;view&lt;/strong&gt;&lt;strong&gt;中获取数据&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;users_controller.php&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class UsersController extends AppController{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Users';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $uses = array();     &lt;br /&gt;/*     &lt;br /&gt;* 控制器中的$data，它用来存放从HTML表单传过来的POST数据。    &lt;br /&gt;*/     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function index(){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!empty ($this-&amp;gt;data)){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; echo $this-&amp;gt;data['姓名'];     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //不用渲染任何view     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;autoRender = false;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;view:index.ctp&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;?php echo $form-&amp;gt;create(null, array('action' =&amp;gt; 'index')); ?&amp;gt;    &lt;br /&gt;&amp;lt;fieldset&amp;gt;     &lt;br /&gt;&amp;lt;legend&amp;gt;请输入您的姓名：&amp;lt;/legend&amp;gt;     &lt;br /&gt;&amp;lt;?php echo $form-&amp;gt;input('姓名') ?&amp;gt;     &lt;br /&gt;&amp;lt;/fieldset&amp;gt;     &lt;br /&gt;&amp;lt;?php echo $form-&amp;gt;end('go'); ?&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image161.png"&gt;&lt;img title="clip_image014" style="border: 0px none; display: inline;" alt="clip_image014" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image014_a9c1d42d-0306-427d-ac0b-525a8dc9a95d.gif" width="683" border="0" height="412" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image12%5B1%5D.png"&gt;&lt;img title="clip_image016" style="border: 0px none; display: inline;" alt="clip_image016" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image016_dba5ac4f-1298-4f62-a7b7-7d96910b4384.gif" width="682" border="0" height="407" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;如果输入一个姓名，并且提交，$data会被POST数据填充，$this-&amp;gt;data将不为空，那么在浏览器上就会打印出名字来。&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;五：重定向&lt;/strong&gt;    &lt;br /&gt;在PHP程序中，我们使用header()，CakePHP中，使用redirect()作用于action。&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class UsersController extends AppController{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Users';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $uses = array();     &lt;br /&gt;/*     &lt;br /&gt;* 控制器中的$data，它用来存放从HTML表单传过来的POST数据。    &lt;br /&gt;*/     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function index(){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!empty ($this-&amp;gt;data)){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;redirect(array('controller'=&amp;gt;'users',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'action'=&amp;gt;'welcome',urlencode($this-&amp;gt;data['姓名'])));     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; a     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function welcome($name=null){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(empty ($name)){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;Session-&amp;gt;setFlash('Please provide your name!',true);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;redirect(array('controller'=&amp;gt;'users','action'=&amp;gt;'index'));     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;set('name', urldecode($name));     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image8.png"&gt;&lt;img title="clip_image018" style="border: 0px none; display: inline;" alt="clip_image018" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image018_803b0121-61ae-4f29-9945-7a357a92c9ee.gif" width="689" border="0" height="404" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles7D5F4/image12.png"&gt;&lt;img title="clip_image020" style="border: 0px none; display: inline;" alt="clip_image020" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHPcontrollers_3493/clip_image020_436d7cd5-87c8-4606-85b1-8c7f19296b3b.gif" width="687" border="0" height="398" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;strong&gt;六：&lt;/strong&gt;&lt;strong&gt;AppController&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;我们知道，CakePHP中，所定义的控制器都是从AppController继承而来，也就是说，它是所有控制器的父类，那么我们就可以在AppController中定义公共的方法，在所有的控制器中都可以使用。&lt;/p&gt;  &lt;p&gt;如：我们修改前面的代码：&lt;/p&gt;  &lt;p&gt;在app文件夹中增加：app_controller.php&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class AppController extends Controller{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function strip_and_clean($id,$array){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $id = intval($id);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if($id &amp;lt; 0 || $id &amp;gt;= count($array)){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $id = 0;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $id;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;修改books_controller.php&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;/*     &lt;br /&gt;* To change this template, choose Tools | Templates     &lt;br /&gt;* and open the template in the editor.     &lt;br /&gt;*/     &lt;br /&gt;class BooksController extends AppController{     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $name = 'Books';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var $uses = array();     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function index( $id = 0 ){     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;set('page_heading','china-pub book store');     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $book = array(     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '0' =&amp;gt; array(     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'book_title' =&amp;gt; 'asp.net 3.5服务器控件开发',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'author' =&amp;gt; '郑健',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'release_date' =&amp;gt; '2009.2'     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ),     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '1' =&amp;gt; array(     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'book_title' =&amp;gt; '银光志',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'author' =&amp;gt; '魏永超',     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'release_date' =&amp;gt; '2009.12'     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $id = $this-&amp;gt;strip_and_clean($id, $book);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;set($book[$id]);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $this-&amp;gt;pageTitle = '欢迎来到china-pub';     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;}     &lt;br /&gt;?&amp;gt;&lt;/p&gt;  &lt;p&gt;我们可以得到相同的效果&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;七：在控制器中使用&lt;/strong&gt;&lt;strong&gt;components&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;在/app/controllers/components中创建util.php&lt;/p&gt;  &lt;p&gt;&amp;lt;?php    &lt;br /&gt;&amp;nbsp;&amp;nbsp; class UtilComponent extends Object     &lt;br /&gt;&amp;nbsp;&amp;nbsp; {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function strip_and_clean ( $id, $array) {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $id = intval($id);     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( $id &amp;lt; 0 || $id &amp;gt;= count($array) ) {     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $id = 0;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $id;     &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp; }     &lt;br /&gt;&amp;nbsp;&amp;nbsp; ?&amp;gt;&lt;/p&gt;  &lt;p&gt;删除在AppController中定义的strip_and_clean方法&lt;/p&gt;  &lt;p&gt;调用：&lt;/p&gt;  &lt;p&gt;var $components = array('Util');&lt;/p&gt;  &lt;p&gt;$id = $this-&amp;gt;Util-&amp;gt;strip_and_clean($id);&lt;/p&gt;  &lt;p&gt;这样我们也可以得到相同的效果。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sunfishlu/aggbug/1741886.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sunfishlu/archive/2010/05/23/1741886.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sunfishlu/archive/2010/05/23/1741883.html</id><title type="text">一步一步学习CakePHP（一）基本概念</title><summary type="text">CakePHP是从ROR中找到了灵感，实现了MVC的模式。  一：在开始CakePHP前，需要  1：Apache（mod_rewrite）  2：PHP4.3.2，或者更高的版本  3：MySQL ...</summary><published>2010-05-22T19:23:00Z</published><updated>2010-05-22T19:23:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2010/05/23/1741883.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2010/05/23/1741883.html"/><content type="html">&lt;p&gt;CakePHP是从ROR中找到了灵感，实现了MVC的模式。&lt;/p&gt;  &lt;p&gt;一：在开始CakePHP前，需要&lt;/p&gt;  &lt;p&gt;1：Apache（mod_rewrite）&lt;/p&gt;  &lt;p&gt;2：PHP4.3.2，或者更高的版本&lt;/p&gt;  &lt;p&gt;3：MySQL&lt;/p&gt;  &lt;p&gt;二：CakePHP的内容目录结构：&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="file:///C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter-429641856/supfiles16AE2/BEA8735A99364E6F9B49C5CD9DA898D5.png"&gt;&lt;img title="clip_image002" style="border: 0px none; display: inline;" alt="clip_image002" src="http://images.cnblogs.com/cnblogs_com/sunfishlu/WindowsLiveWriter/CakePHP_2F70/clip_image002_29558afd-9892-43ac-8066-92a554dee830.gif" width="135" border="0" height="176" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;app&lt;/strong&gt;&lt;strong&gt;：包含了应用程序的文件，所有的&lt;/strong&gt;&lt;strong&gt;controllers&lt;/strong&gt;&lt;strong&gt;、&lt;/strong&gt;&lt;strong&gt;models&lt;/strong&gt;&lt;strong&gt;、&lt;/strong&gt;&lt;strong&gt;views&lt;/strong&gt;&lt;strong&gt;、&lt;/strong&gt;&lt;strong&gt;layouts&lt;/strong&gt;&lt;strong&gt;，以及&lt;/strong&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&lt;strong&gt;、&lt;/strong&gt;&lt;strong&gt;css&lt;/strong&gt;&lt;strong&gt;、图片、&lt;/strong&gt;&lt;strong&gt;flash&lt;/strong&gt;&lt;strong&gt;。&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;cake&lt;/strong&gt;&lt;strong&gt;：&lt;/strong&gt;&lt;strong&gt;CakePHP&lt;/strong&gt;&lt;strong&gt;的核心库文件，以及一些支持&lt;/strong&gt;&lt;strong&gt;CakePHP&lt;/strong&gt;&lt;strong&gt;的类文件和脚本。&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;vendors&lt;/strong&gt;&lt;strong&gt;：用来存放第三方的文件。&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Cake Components：Components是为了更好的支持controller而定义的一些类文件，CakePHP中已经包含了许多Components，如：Acl、Auth、Email、&lt;/p&gt;  &lt;p&gt;Session和RequestHandler，我们也可以自定义Components，存放在app/controller/components中。&lt;/p&gt;  &lt;p&gt;三：在开始编写程序前，我们还需要进行以下工作。&lt;/p&gt;  &lt;p&gt;1：修改Security.salt的值，在app/config/core.php文件中。（用来产生hash码，增强安全性。）&lt;/p&gt;  &lt;p&gt;2：输入MySQL数据库的连接配置。在app/config/database.php.default中，重命名为database.php，然后根据自己的数据库配置此文件。&lt;/p&gt;  &lt;p&gt;四：命名规则&lt;/p&gt;  &lt;p&gt;1：controller&lt;/p&gt;  &lt;p&gt;类名称：必须是复数，并且要附加上Controller。&lt;/p&gt;  &lt;p&gt;PHP文件：必须是复数，且附加上_controller，PHP扩展名。&lt;/p&gt;  &lt;p&gt;2：model&lt;/p&gt;  &lt;p&gt;类名称：必须是单数&lt;/p&gt;  &lt;p&gt;PHP文件：必须是单数，PHP扩展名，如果多个单词，用&amp;#8220;_&amp;#8221;连接。&lt;/p&gt;  &lt;p&gt;3：view&lt;/p&gt;  &lt;p&gt;view文件的名称是从controller中action名称而来。例如：ProductsController::add()，view的路径那么就是：app/view/products/add.ctp。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/sunfishlu/aggbug/1741883.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/sunfishlu/archive/2010/05/23/1741883.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/sunfishlu/archive/2009/12/24/1631054.html</id><title type="text">JQuery写的个性导航菜单</title><summary type="text">浏览者是否对网站感兴趣，前20秒的第一印象至关重要，所以我们的设计要符合大众的期望。下面我们将设计一个个性的导航菜单。</summary><published>2009-12-23T16:28:00Z</published><updated>2009-12-23T16:28:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2009/12/24/1631054.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2009/12/24/1631054.html"/></entry><entry><id>http://www.cnblogs.com/sunfishlu/archive/2009/09/28/1575361.html</id><title type="text">JQueryUI(五)：Dialog(第二部分)</title><summary type="text">3：事件  3.1：close，关闭对话框时执行  3.2：drag，拖动对话框时执行  3.3：dragStart，开始拖动对话框时执行  3.4：dragStop，结束拖动对话框时执行  3.5：...</summary><published>2009-09-27T16:33:00Z</published><updated>2009-09-27T16:33:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2009/09/28/1575361.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2009/09/28/1575361.html"/></entry><entry><id>http://www.cnblogs.com/sunfishlu/archive/2009/09/27/1574720.html</id><title type="text">JQueryUI(四)：Dialog(第一部分)</title><summary type="text">1：基本的对话框  在页面上显示对话框非常简单，只需要定义一个div即可。如：  &amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01//EN&amp;qu...</summary><published>2009-09-26T16:27:00Z</published><updated>2009-09-26T16:27:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2009/09/27/1574720.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2009/09/27/1574720.html"/></entry><entry><id>http://www.cnblogs.com/sunfishlu/archive/2009/09/25/1573678.html</id><title type="text">JQueryUI(三)：Accordion</title><summary type="text">摘要：JQueryUI（Accordion）  &amp;#160;  1：Accordion的结构，首先我们先看一个基本的例子。  &amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C...</summary><published>2009-09-24T16:43:00Z</published><updated>2009-09-24T16:43:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2009/09/25/1573678.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2009/09/25/1573678.html"/></entry><entry><id>http://www.cnblogs.com/sunfishlu/archive/2009/09/23/1572894.html</id><title type="text">JQueryUI(二)：Tabs（第二部分）</title><summary type="text">3：Tab事件  &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; tab组件定义了一系列的属性用来回发对应的方法，如add、disable、enable、load、remove、sele...</summary><published>2009-09-23T13:01:00Z</published><updated>2009-09-23T13:01:00Z</updated><author><name>sunfishlu</name><uri>http://www.cnblogs.com/sunfishlu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/sunfishlu/archive/2009/09/23/1572894.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/sunfishlu/archive/2009/09/23/1572894.html"/></entry></feed>
