- 浏览: 7932668 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
PHP的框架是超多了,但有时,感觉有些框架是不是考虑的太过度了,总要把简单的事
复杂化,比如下面举出CAKEPHP中的FIND的写法,看上去象HIBERNATE的查询语法,但HIBERNATE的比它简单多了,明明SQL简单通用的东西,要故弄玄虚的搞一翻,还要安上自己的一些规则,所以嘛,不要迷信框架,要选合适自己用的部分,下面举例之:
1 如果我们想找一个ISBN书号为'1234567890'的书,我们只需执行如下SQL命令:
SELECT * FROM `books` AS `Book` WHERE `Book`.`isbn` = '1234567890';
但是在CakePHP的在BooksController中,我们可以像下面这样调用find()方法:
$this->Book->find('first', array(
'conditions' => array(
'Book.isbn' => '= 1234567890'
)
)
这个还可以接受,再来个:
2 如果我们想查找由'Anupom Syam' , 'Ahsanul Bari' 以及 'David Barnes'等人撰写的所有书籍,我们可以使用下面这个SQL语句来实现:
SELECT * FROM `books` AS `Book` WHERE Book.author_name IN ( 'Anupom Syam', 'Ahsanul Bari', 'David Barnes')
在CakePHP中,我们可以像下面这样使用find()方法来实现上面SQL语句的效果
$this->Book-> find('all', array(
'conditions' => array(
'Book.author_name' => array(
'Anupom Syam',
'Ahsanul Bari',
'David Barnes'
)
)
)
);我们可以通过在对应的字段名后面设置一个包含有值的数组来实现与SQL逻辑运算符IN()同等的效果。
你看,已经复杂不少了!
3 如果我们想查找所有由'David Barnes'撰写或者书名中包含有”CakePHP“一词的书,我们只需使用下面这段SQL语句:
SELECT * FROM `books` AS `Book` WHERE Book.author_name LIKE ( 'David Barnes' OR Book.title LIKE '%CakePHP%')在CakePHP中,它所对应的代码是:
$this->Book-> find('all', array(
'conditions' => array(
"or" =>
array
(
"Book.author_name" => "David Barnes",
"Book.title" => "%CAKEPHP%"
)
)
)
);
你看,本来好好的一个SQL语句,还要故弄玄虚的搞成这样,如果不说规则,还真不知道还原成SQL语句是什么样子的,可读性差(把OR单独抽取了出来)
不是说逼,而是觉得太过复杂故弄玄虚的技术,生产中应该少用
复杂化,比如下面举出CAKEPHP中的FIND的写法,看上去象HIBERNATE的查询语法,但HIBERNATE的比它简单多了,明明SQL简单通用的东西,要故弄玄虚的搞一翻,还要安上自己的一些规则,所以嘛,不要迷信框架,要选合适自己用的部分,下面举例之:
1 如果我们想找一个ISBN书号为'1234567890'的书,我们只需执行如下SQL命令:
SELECT * FROM `books` AS `Book` WHERE `Book`.`isbn` = '1234567890';
但是在CakePHP的在BooksController中,我们可以像下面这样调用find()方法:
$this->Book->find('first', array(
'conditions' => array(
'Book.isbn' => '= 1234567890'
)
)
这个还可以接受,再来个:
2 如果我们想查找由'Anupom Syam' , 'Ahsanul Bari' 以及 'David Barnes'等人撰写的所有书籍,我们可以使用下面这个SQL语句来实现:
SELECT * FROM `books` AS `Book` WHERE Book.author_name IN ( 'Anupom Syam', 'Ahsanul Bari', 'David Barnes')
在CakePHP中,我们可以像下面这样使用find()方法来实现上面SQL语句的效果
$this->Book-> find('all', array(
'conditions' => array(
'Book.author_name' => array(
'Anupom Syam',
'Ahsanul Bari',
'David Barnes'
)
)
)
);我们可以通过在对应的字段名后面设置一个包含有值的数组来实现与SQL逻辑运算符IN()同等的效果。
你看,已经复杂不少了!
3 如果我们想查找所有由'David Barnes'撰写或者书名中包含有”CakePHP“一词的书,我们只需使用下面这段SQL语句:
SELECT * FROM `books` AS `Book` WHERE Book.author_name LIKE ( 'David Barnes' OR Book.title LIKE '%CakePHP%')在CakePHP中,它所对应的代码是:
$this->Book-> find('all', array(
'conditions' => array(
"or" =>
array
(
"Book.author_name" => "David Barnes",
"Book.title" => "%CAKEPHP%"
)
)
)
);
你看,本来好好的一个SQL语句,还要故弄玄虚的搞成这样,如果不说规则,还真不知道还原成SQL语句是什么样子的,可读性差(把OR单独抽取了出来)
评论
3 楼
jackyrong
2011-12-08
bingxingke2 写道
你可以用原生的sql语句来查询啊,没逼着你用cake的来写:
$this->Book->query($sql);
cake model也有魔术方法(findBy,findAllBy)的,比如你的第一个例子可以这么写:
$this->Book->findByIsbn ('1234567890');
$this->Book->query($sql);
cake model也有魔术方法(findBy,findAllBy)的,比如你的第一个例子可以这么写:
$this->Book->findByIsbn ('1234567890');
不是说逼,而是觉得太过复杂故弄玄虚的技术,生产中应该少用
2 楼
bingxingke2
2011-12-08
你可以用原生的sql语句来查询啊,没逼着你用cake的来写:
$this->Book->query($sql);
cake model也有魔术方法(findBy,findAllBy)的,比如你的第一个例子可以这么写:
$this->Book->findByIsbn ('1234567890');
$this->Book->query($sql);
cake model也有魔术方法(findBy,findAllBy)的,比如你的第一个例子可以这么写:
$this->Book->findByIsbn ('1234567890');
1 楼
ly365
2011-06-22
纯蛋疼,效率低
发表评论
-
11个php日常用的小tips 代码片段
2014-01-21 20:34 1929http://www.phpzag.com/11-useful ... -
php中的DirectoryIterator和RecursiveDirectoryIterator
2013-07-27 22:50 3511php中,可以用用DirectoryIterator获取指定目 ... -
uccenter中找回创始人密码
2013-03-11 19:12 1913偶然忘记了uccenter中的创始人密码,一查看,其实找回 ... -
php中通过register_shutdown_function记录fatal error
2013-02-09 23:56 2965今天发现php中,如果要记录fatal error的时候, ... -
php中检查是否ajax请求
2013-01-19 09:53 1467$ajax = false; if(!empty ... -
php中检查某个网页地址是否有效能被打开的最简单方法
2012-10-22 16:18 2089php中检查某个网页地址是否有效能被打开的最简单方法,其实可以 ... -
小结几个php操作office的类库
2012-07-20 19:16 19341 phpexcel 最强大完整的类库了,地址在: ht ... -
介绍几个PHP的开源不错的图片类库
2012-07-14 13:11 2880介绍几个PHP的开源不错的图片类库 1 pchart ... -
php中__sleep和__wakeup
2012-06-22 09:39 4519在php中,__sleep和___wakeup是两个分别自 ... -
PHP 5.4正式版重要新特性
2012-05-25 08:34 1673原文发表在:http://tech.it168.com/a20 ... -
用php实现备份数据库ZIP及导出
2012-04-17 08:59 1842经常在有的PHP开源系统中,看到有备份数据库并导出的方法 ... -
PHP Codeigniter 中的_remap方法简介
2012-04-05 21:06 4583在Codeigniter 中,其实有个容易忽略掉的不错的控 ... -
PHP 5.4中的traits初探
2012-04-01 19:57 5049PHP 5.4中的traits,是新引入的特性,中文还真不知道 ... -
php中的pdo和mysqli的对比选择
2012-03-10 22:25 7149在PHP中,如何选择PDO和mysqli呢?本文做个简单的 ... -
php 5.4中新增加对session状态判断的功能
2012-02-20 12:28 3965在以前的php 版本中,要判断session是否有效,只能 ... -
php curl的几段小应用
2012-02-07 10:10 1822php 的CURL是不错的功能,下面收藏几段不错的片段 1 ... -
php 5.3中的一个type hinting的用法
2012-01-20 11:50 2313今天偶然看php 5.3中的一个特性,叫type hintin ... -
cakephp的分页排序
2012-01-04 10:38 4226cakephp中的分页还是很简单的,下面例子复习下 1 数据 ... -
mongodb+php学习1
2012-01-03 11:51 52271 mongodb启动时,设置启动项 C:\>mon ... -
php中挺好用的strtotime方法
2011-12-20 11:32 1959在PHP中,经常要对日期进行计算,比如要计算一个月前的日期 ...
相关推荐
在开发模式下,你可以通过配置文件开启调试模式(debug模式),并在视图中使用CakePHP提供的调试工具来查看SQL执行情况。 4. 配置日志记录参数 可以通过调整日志记录的级别来控制需要打印的SQL语句。在core.php文件...
在CakePHP中,模型通常与数据库表关联,用于执行CRUD(创建、读取、更新、删除)操作。ORM(对象关系映射)是模型层的核心,使得开发者可以用面向对象的方式来操作数据库。 4. **视图(View)**: 视图负责展示...
在 CakePHP 中,开发者可以快速地搭建功能丰富的Web应用程序。其主要特点包括: 1. **快速开发**:CakePHP 提供了大量的内置功能,如数据库连接管理、ORM(对象关系映射)、表单处理和验证、自动化的脚手架生成等,...
2. **查询构造器**:通过ORM(对象关系映射),开发者可以使用链式方法构建复杂的SQL查询,无需直接编写SQL语句。 ### 四、验证和错误处理 1. **数据验证**:在模型层,可以设置数据验证规则,确保输入数据的完整...
在 CakePHP 中,MVC模式是核心设计思想。Model代表数据模型,处理与数据库的交互;View负责展示用户界面;Controller作为模型和视图之间的桥梁,处理用户请求并调用相应的模型方法,然后将数据传递给视图进行渲染。 ...
默认情况下,数据源主要是数据库,但也可以通过自定义 DataSource 来处理 RSS feeds、CSV 文件、LDAP 目录数据甚至是 iCal 事件。 - **模型回调函数**:与控制器类似,模型也支持一系列的回调函数,如: - `before...
10. **插件(Plugin)**:插件是独立的CakePHP应用,可以方便地集成到项目中,提供了模块化开发的可能性。 11. **错误处理与调试**:涵盖了错误报告、日志记录和调试工具,如DebugKit,它是一个可视化的工具集,...
在 CakePHP 中,MVC模式被实现得非常直观和易于使用。例如,控制器类通常放在`app/Controller`目录下,模型类位于`app/Model`,而视图文件则位于`app/View`。 **MVC 模式** 虽然手册建议在阅读前了解MVC的基本概念...
CakePHP是一个开源的PHP on rails的full-stack framework。最开始从Ruby On Rails框架里得到灵感。程序员可使用它来快速创建的Web应用程序。我们的首要目的是使你以一种预置的快速且不失灵活性的方式开展工作。
CakePHP有多个特点,这些特点让CakePHP成为了快速开发框架中的佼佼者之一。 1.活跃友好的社区 2.灵活的许可协议(Licensing) 3.兼容PHP4和PHP5 4.数据库交互和简单查询的集成 5.应用程序Scaffolding 6....
CakePHP 1.3中文帮助文档,内容简单易懂并且全面,值得大家下载...
CakePHP框架中实现Ajax传值是通过AJAX (Asynchronous JavaScript and XML) 技术与后端的CakePHP控制器进行数据交换的一种方式。通常在Web开发中,Ajax用于创建更为动态和响应快速的用户界面。当用户与页面上的元素...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
在CakePHP中: - **Model**:代表数据模型,负责处理和数据库交互的业务逻辑,封装了数据操作。 - **View**:视图负责展示数据,通常用于生成用户界面。 - **Controller**:控制器处理用户请求,调用模型进行数据...
在CakePHP中,Access Control List(ACL)是一个强大的工具,用于管理应用程序中的权限和访问控制。让我们深入探讨一下CakePHP中的ACL系统。 ### ACL基础概念 **1. ACO (Access Control Object)**:ACO代表要控制...
在CakePHP中,模型处理数据和业务规则,视图负责展示数据,控制器则协调模型和视图,实现数据的交互。 2. **ActiveRecord**:CakePHP采用了ActiveRecord模式,允许开发者通过简单的对象操作来访问数据库。每个...
- **AppController**:介绍了CakePHP中默认的控制器类`AppController`,以及如何继承它来创建自己的控制器。 - **请求参数**:解释了如何处理HTTP请求中的各种参数,如GET、POST数据等。 - **控制器动作**:讲解了...