PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。但是在MVC设计模式中,Index称为动作。当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。......
2025-09-30
如果只是获取特定的字段或者获取指定的记录,使用动态查询更加高效。动态查询免除了where条件部分,直接动态传参即可。高级模型中一共提供了3个操作方法用于实现动态查询,分别为getBy、getFieldBy和top。
(1)getBy
getBy方法用于根据某个字段的值查询数据,这里所说的某个字段是不确定的,是一个动态的字符串,例如getByEmail,就表示根据Email字段查询数据,如以下代码所示。
上述代码中传入参数“kf@86055.com”,即表示在UserEmail字段中查找值为kf@86055.com的记录。这里需要注意的是,在tpk_user表中并不存在UserEmail这个字段,但结果一样正确,这是因为系统默认使用了模型与数据表映射规则,即系统会将UserEmail这个字符串解释为user_email字段。上述代码的转换后的SQL语句如下所示。
如果字段为数字类型,需要传入正确的数字,例如getById(1)。
(2)getFieldBy(https://www.chuimin.cn)
getFieldBy和getBy相类似,但getFieldBy不仅获取到某个字段指定值的数据,还可以根据某个字段值得到另一个字段的值。假设根据kf@86055.com查询结果,得到该用户的id,那么可以动态表示为getFieldByEmail(“kf@86055.com”,“id”),如以下代码所示。
上述代码转换后的SQL语句如下所示。
(3)top
getN操作方法用于跳过记录,而top操作方法用于包含记录。top操作方法是一个动态方法,不需要传递参数,它的表示方式直观好记,例如需要获取前5个用户,那么就表示为top5()。严格意义上数字5并不是一个合格的方法命名规则,但在动态操作中是被允许的。
动态查询只有top操作方法需要使用AdvModel高级模型,其他两个并不需要,这里为了便于讲解,所以将其归类为高级模型。需要说明的是AdvModel模型完全适用于Model基础模型,所以在动态模型中,基础模型的where、order等连贯操作都是通用的。
相关文章
PHP 5后的版本借鉴了大量Java思想,得益于早期PHP面向过程编程支持,PHP在实现MVC设计中变得较灵活、易用。但是随着PHP 5.x的到来,各种MVC框架的出现,尤其Zend推出的Zend Framework,彻底地改变了PHP状况,使得PHP也能够实现优雅的Web编程。MVC设计模式将使代码将变得简洁。但是在MVC设计模式中,Index称为动作。当然,MVC只是一种设计模式,在开源的PHP编程世界中,已经拥有众多的MVC编程框架。......
2025-09-30
前面已经简单介绍过ThinkPHP视图引擎,这些标签处理机制类似于JSP tag,使用XML作为标签的渲染方式,开发人员可以方便地在网页中嵌入XML标签,然后由ThinkPHP视图引擎解释成标准的PHP代码。ThinkPHP的视图引擎之所以高效,主要体现在它的标签扩展性。ThinkPHP的视图标签扩展性够完美地与后台控制器代码相结合,例如在Smarty中使用函数功能,首先需要在后台PHP代码注册,而在ThinkPHP中完全不需要,如以下代码所示。......
2025-09-30
要使用Symfony开发Web应用,PHP环境必须为5.0.1以上,并且安装了Pear扩展库。接来下将进入安装Symfony的步骤。pear upgrade pear现在就可以获取Symfony了。图4-10 symfony频道可用的包如图中所示,当前的Symfony最新的版本为1.4.17,当然这指的是正式包,实际上可用的2.0测试包已经可供下载了。接下来将进入Symfony的安装阶段,请确保当前网络环境稳定可靠。图4-11 pear安装Symfony安装完成后可以在xampp\php\pear目录下看到Symfony文件夹,如图4-12所示。图4-12 Symfony安装成功测试Symfony是否可用,最直接的办法就是创建一个项目。......
2025-09-30
Eclipse是IBM的一个商业项目,2001年11月起IBM将Eclipse贡献给开源社区,从此奠定了Eclipse的地位。Eclipse通过PDT插件来提供PHP开发支持,Eclipse PDT能够让编写PHP变得简单和高效,下面将介绍Eclipse PDT的安装和使用。Eclipse PDT的安装有两种方式,一种是直接通过Eclipse的扩展进行安装;另一种是下载带PDT插件的Eclipse。下面将以Eclipse3.5.2作为基础,讲解Eclipse PDT插件的安装过程。如果下载带PDT插件的Eclipse,只需要双击Eclipse启动程序即可,此时Eclipse就提供了完美的PHP编程支持。......
2025-09-30
在数据库开发中,查询和插入数据是同等重要的,ThinkPHP对数据的插入、更新等都做了高度封装,系统提供create方法,用于创建数据对象。图7-2 create创建数据流程2.create数据操作前面介绍了create方法的运行过程,读者只需要理解即可,在实际应用开发中创建数据的过程是极其简单的。下面将结合示例代码,介绍create方法的实际应用,加深对create方法的认识。一切完成后,此时数据对象存放于内存中,使用add方法进行提交,完成整个create创建数据的过程。......
2025-09-30
Zend Studio在6.0之前采用独立安装包进行发行。下面分别对经典的Zend Studio 5.5和成熟的Zend Studio 8.0进行讲解,方便读者选择。Zend Studio 8.0是Zend推出的商业套件,开发者或企业必须要购买商业许可才能进行使用。......
2025-09-30
CodeIgniter简称CI,是国内使用最广泛的PHP MVC框架之一。CodeIgniter从MVC入口文件到框架核心代码,均经过严谨的设计。CodeIgniter定位于小型的网站应用开发,但并不代表CodeIgniter不适用于大型网站开发。CodeIgniter MVC处理流程如图4-19所示。CodeIgniter灵活高效的MVC处理机制,无论在国内还是国外都得到了广泛的PHP程序员支持。接下来将以CodeIgniter 2.1.2为基础,介绍CodeIgniter的MVC处理流程,让读者对CodeIgniter有一个更加直观的认识。......
2025-09-30
Zend Framework是以组件的方式进行代码构建的,组件的概念类似是Java中包的概念。Zend Framework强大之处就在于提供了非常多的实用组件,开发人员可以方便地使用Zend Framework提供的种类组件,轻易地实现原本需要复杂设计的功能。常用Zend_Filter组件类如下。Zend_Filter组件所包含的类如图4-5所示。图4-7 Zend_Mail组件5.Zend_Db_AdapterZend_Db_Adapter是一个操作数据库的组件,能够实现简洁高效的数据库操作。......
2025-09-30
相关推荐