存档

文章标签 ‘ThinkPHP’

ThinkPHP框架中快捷键M和D的区别

2011年7月4日 ken 2 条评论

D()M()方法的区别:

DM的区别主要在于

M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现

D方法必须有创建模型类。

我们可以用下面两种方法去创建一个数据表的映射对象

第一种:$Test = D(‘Test’)

第二种:$Test = new Model(‘Test’)

虽然这两种都可以对数据进行select,insert,delete,udpate操作,在

数据验证上有很大的不同,

用第一种方式实例一个模型就会有数据检查功能,如果 title 没有填写的话就会提示 “请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的model中定义好验证条件);

如果用第二种就没有了这个数据验证功能,需要手动验证。 阅读全文…

分类: PHP, ThinkPHP 标签: ,

基于ThinkPHP的个人博客系统Kenblog v1.0

2010年12月9日 ken 17 条评论

基于ThinkPHPPHP个人博客系统终于可以和大家见面了,心里多少有点抱歉,因为时间原因中间拖得有点久。

下面简单介绍下该博客Kenblog v1.0

开发环境:Apache + PHP + Mysql + ThinkPHP + win2003

后台功能包括:导航页管理,日志分类管理,日志管理,友情链接管理,系统管理

主要特点包括: 阅读全文…

ThinkPHP分页功能实现方法

2010年12月2日 ken 没有评论

在做PHP项目开发时候,经常会用到分页功能,现在我把基于ThinkPHP分页功能代码解释如下:

说明:post是我的一张数据库表

1。Index控制器中的代码如下:
模块index()就是实现数据集分页和输出的功能

/*
*import(“ORG.Util.Page”);导入分页类
*$show = $page->show(10);分页样式变量
*$list = M(“Post”)->limit($page->firstRow.’,’.$page->listRows)->select();分页数据集变量
*/

 class IndexAction extends HomeAction{
  function index()
  {

import(“ORG.Util.Page”);
   $count = M(“Post”)->count();
   $page = new page($count,10);
   $page -> setConfig(‘header’, ‘条记录’);//设置分页显示的样式
   $page -> setConfig(‘theme’, “共 %totalPage% 页/%totalRow%%header% %first% %upPage% %linkPage% %downPage% %end%”);
   $show = $page->show(10);
   $list = M(“Post”)->limit($page->firstRow.’,’.$page->listRows)->select();

   $this->assign(“summarylist”,$list);
   $this->assign(“page”,$show);

  }
 }

2。在上面Index控制器中IndexAction操作对应的模板文件index.html中使用{$list}和{$page}就可以分别输出数据和分页的样式,其实懂明白了这点就蛮好理解这个ThinkPHP分页的。

再有不清楚的朋友我们可以再讨论下。。呵呵

基于ThinkPHP的博客程序大体面貌终于开发完毕

2010年11月15日 ken 没有评论

从开始设计到现在,中间断断续续的编码,基于ThinkPHP框架的php博客终于快要完成了。

目前博客的大体框架模型已经出来了,只是现在在界面和功能上在尽量完善下,待完善后就可以开源和大家见面了!呵呵~

这个也算基于ThinkPHP框架的处女作品吧,到时候欢迎各位朋友交流指正。

分类: PHP 标签:

ThinkPHP的增、删、查、改功能实现方法

2010年10月29日 ken 3 条评论

ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建、更新、读取和删除的实现是php学习最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法。CURD操作通常是可以和连贯操作配合完成的。下面来分析下各自的用法:
(下面的CURD操作我均以M方法创建模型实例来说明,因为不涉及到具体的业务逻辑)
一、创建操作
在ThinkPHP使用add方法新增数据到数据库。
使用方法如下:
$User = M(“User”); // 实例化User对象
$data['name'] = ‘ThinkPHP’;
$data['email'] = ‘phpboke@163.com’;
$User->add($data);
或者使用data方法连贯操作
$User->data($data)->add();
如果在add之前已经创建数据对象的话(例如使用了create或者data方法),add方法就不需要再传入数据了。
使用create方法的例子:
$User = M(“User”); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
$User->create();
$User->add(); // 根据条件保存修改的数据
如果你的主键是自动增长类型,并且如果插入数据成功的话,Add方法的返回值就是最新插入的主键值,可以直接获取。

阅读全文…

分类: PHP, ThinkPHP 标签:

ThinkPHP框架快捷键使用说明

2010年10月28日 ken 没有评论

php mvc框架ThinkPHP中有很多快捷键,但是很多时候我们不太明白它的意思,下面我简单的列了下他们的含义:

A快速实例化Action类库

B执行行为类

C配置参数存取方法

D快速实例化Model类库

F快速简单文本数据存取方法

L 语言参数存取方法

M快速高性能实例化模型

R快速远程调用Action类方法

S快速缓存存取方法

U URL动态生成和重定向方法

W 快速Widget输出方法

希望对php学习新手ThinkPHP有所帮助.

分类: PHP 标签: ,

PHP MVC框架ThinkPHP中Data方法的使用技巧

2010年10月25日 ken 没有评论

PHP MVC框架ThinkPHP中有一个data方法,下面简单说下该方法的使用。

data()方法可以用于新增或者保存数据之前的数据对象赋值,例如:

$Model->data($data)->add();

或者

$Model->data($data)->where(‘id=3′)->save();

Data方法的参数支持对象和数组,如果是对象会自动转换成数组。如果不定义data方法赋值,也可以使用create方法或者手动给数据对象赋值的方式。

更多PHP  MVC  框架ThinkPHP使用技巧请不断关注本博客以后的文章。

基于ThinkPHP框架的博客开发

2010年10月21日 ken 2 条评论

2010.10.21晚上11点

最近一直在计划着自己写一个博客程序。其实白天工作太忙没有时间写程序,只有每天下班回到宿舍看完半部电影然后打开Zend Studio开始程序旅程。学了php后,紧接着就接触了ThinkPHP框架,于是就有了自己写一个博客程序的想法。

从功能需求到数据库设计,从程序编码到最后的测试我是严格按照Web网站开发标准来走,以便在后期维护和升级中方便。

因为只有晚上才有时间写,因此很多功能和想法也不能一气呵成,打算写完后开源,和大家一起讨论学习php技术。

分类: 心情随笔 标签: ,

ThinkPHP实现伪静态如何去掉目录中的index.php

2010年10月2日 ken 没有评论

ThinkPHP中默认的URL地址是形如这样的:http://localhost/Myapp/index.php/Index/index/

Myapp是我的项目文件名,默认的访问地址是上面这样的。为了使URL更加简介友好,现在要去掉中间的index.php,方法如下:

1。确认httpd.conf配置文件中加载了mod_rewrite.so 模块,加载的方法是去掉mod_rewrite.so前面的注释#号

2。讲httpd.conf中的Allowoverride  None 将None改为All

3。打开对应的项目配置文件,我的项目配置文件是Myapp/Conf/config.php ,在这个配置文件数组中增加一行,‘URL_MODEL’=>2

4。在项目的根目录下面建立一个.htaccess文件,里面写入下面的内容:

<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

如果你的服务器支持rewrite,现在就可以通过http://localhost/Myapp/Index/index/访问Index模块下面的index操作。

ThinkPHP开发向导-模型定义和实例化

2010年9月13日 ken 2 条评论

在ThinkPHP2.0版本中,可以无需进行任何模型定义。只有在需要封装单独的业务逻辑的时候,模型类才是必须被定义的,因此ThinkPHP在模型上有很多的灵活和方便性,让你无需因为表太多而烦恼。

根据不同的模型定义,我们有几种实例化模型的方法,下面来分析下什么情况下用什么方法:

  • 实例化基础模型(Model) 类

在没有定义任何模型的时候,我们可以使用下面的方法实例化一个模型类来进行操作:

PHP代码

$User = new Model('User');

或者使用M快捷方法实例化是等效的

PHP代码

$User = M('User');    

$User->select(); // 进行其他的数据操作

这种方法最简单高效,因为不需要定义任何的模型类,所以支持跨项目调用。缺点也是因为没有自定义的模型类,因此无法写入相关的业务逻辑,只能完成基本的CURD操作。 阅读全文…

分类: PHP 标签: ,