ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx

上传人:b****5 文档编号:21518000 上传时间:2023-01-30 格式:DOCX 页数:9 大小:40.02KB
下载 相关 举报
ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx_第1页
第1页 / 共9页
ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx_第2页
第2页 / 共9页
ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx_第3页
第3页 / 共9页
ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx_第4页
第4页 / 共9页
ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx

《ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。

ThinkPHP31快速入门2数据CURDWord文档下载推荐.docx

br/>

3.内容:

TEXTAREA 

content"

rows="

5"

cols="

45"

/TEXTAREA>

4.<

submit"

value="

提交"

5.<

/FORM>

然后,我们还需要在项目的Action目录下面创建一个FormAction.class.php文件,暂时只需要定义FormAction类,不需要添加任何操作方法,代码如下:

1.class 

FormAction 

extends 

Action{

2.}

接下来,访问

1.http:

//localhost/app/index.php/Form/add

就可以看到表单页面了,我们并没有在控制器里面定义add操作方法,但是很显然,访问是正常的。

因为ThinkPHP在没有找到对应操作方法的情况下,会检查是否存在对应的模板文件,由于我们有对应的add模板文件,所以控制器就直接渲染该模板文件输出了。

所以说对于没有任何实际逻辑的操作方法,我们只需要直接定义对应的模板文件就行了。

我们可以看到,在表单中定义了提交地址是到Form模块的insert操作,为了处理表单提交数据,我们需要在FormAction类中添加insert操作方法,如下:

2. 

public 

function 

insert(){

3. 

$Form 

D('

Form'

);

4. 

if($Form->

create()) 

{

5. 

$result 

$Form->

add();

6. 

if($result) 

7. 

$this->

success('

操作成功!

'

8. 

}else{

9. 

error('

写入错误!

10. 

}

11. 

12. 

error($Form->

getError());

13. 

14. 

15.}

如果你的主键是自增类型的话,add方法的返回值就是该主键的值。

不是自增主键的话,返回值表示插入数据的个数。

如果返回false则表示写入出错。

模型

为了方便测试,我们首先在数据库中创建一个think_form表:

1.CREATE 

TABLE 

IF 

NOT 

EXISTS 

`think_form` 

`id` 

smallint(4) 

unsigned 

NULL 

AUTO_INCREMENT,

`title` 

varchar(255) 

NULL,

`content` 

`create_time` 

int(11) 

PRIMARY 

KEY 

(`id`)

7.) 

ENGINE=MyISAM 

DEFAULT 

CHARSET=utf8 

;

我们在insert操作方法中用了D函数,和M函数不同,D函数需要有对应的模型类,下面我们就来创建模型类。

模型类的定义规范是:

模型名+Model.class.php 

(模型名的定义采用驼峰法并且首字母大写)

我们在项目的Lib/Model目录下面创建FormModel.class.php文件,添加代码如下:

FormModel 

Model 

// 

定义自动验证

protected 

$_validate 

array(

array('

title'

'

require'

标题必须'

),

定义自动完成

$_auto 

create_time'

time'

1,'

function'

10.}

主要是用于表单的自动验证和自动完成,具体用法我们会用另外的篇幅单独讲述,这里暂时先略过。

我们只要了解的是,如果使用D函数实例化模型类,一般需要对应一个数据模型类,而且create方法会自动把表单提交的数据进行自动验证和自动完成(如果有定义的话),如果自动验证失败,就可以通过模型的getError方法获取验证提示信息,如果验证通过,就表示数据对象已经成功创建,但目前只是保存在内存中,直到我们调用add方法写入数据到数据库。

这样就完成了一个完整的Create操作,所以可以看到ThinkPHP在创建数据的过程中使用了两步:

第一步,create方法创建数据对象,

第二步,使用add方法把当前的数据对象写入数据库。

当然,你完全可以跨过第一步,直接进行第二步,但是这样的预处理有几个优势:

1、无论表单有多复杂,create方法都可以用一行代码轻松创建数据对象;

2、在写入数据之前,可以对数据进行验证和补充;

其实create方法还有很多的功能操作,目的只有一个,确保写入数据库的数据安全和有效。

我们来验证下表单提交的效果,当我们不输入标题就直接提交表单的话,系统会给出标题必须这样的提示信息。

当我们顺利提交表单后,会看到写入数据表的数据中的create_time字段已经有值了,这就是通过模型的自动完成写入的。

如果你的数据完全是内部操作写入而不是通过表单的话(也就是说可以充分信任数据的安全),那么可以直接使用add方法,如:

1.$Form 

2.$data['

ThinkPHP'

3.$data['

content'

表单内容'

4.$Form->

add($data);

也可以支持对象方式操作:

2.$Form->

title 

3.$Form->

content 

对象方式操作的时候,add方法无需传入数据,会自动识别当前的数据对象赋值。

读取数据

当我们成功写入数据后,就可以进行数据读取操作了。

在前面一篇中,我们已经知道可以用select方法获取数据集,这里我们来通过find方法获取一个单一数据,定义read操作方法如下:

1.public 

read($id=0){

M('

$data 

find($id);

if($data) 

data 

$data;

模板变量赋值

数据错误'

display();

11.}

read操作方法有一个参数$id,表示我们可以接受URL里面的id变量(后面我们会在变量章节详细描述。

这里之所以用M方法而没有用D方法,是因为find方法是基础模型类Model中的方法,所以没有必要浪费开销去实例化FormModel类(即使已经定义了FormModel类)。

我们通常采用find方法读取某个数据,这里使用了AR模式来操作,所以没有传入查询条件,find($id)表示读取主键为$id值的数据,find方法的返回值是一个如下格式的数组:

1.array(

id'

=>

5,

测试标题'

测试内容'

status'

1,

6.)

然后我们可以在模板中输出数据,添加一个read模板文件,

table>

2.<

tr>

td>

id:

/td>

{$data.id}<

/tr>

6.<

标题:

{$data.title}<

9.<

10.<

内容:

{$data.content}<

13.<

14.<

/table>

完成后,我们就可以访问

//localhost/app/index.php/Form/read/id/1

来查看了。

如果你只需要查询某个字段的值,还可以使用getField方法,例如:

M("

Form"

2.// 

获取标题 

3.$title 

where('

id=3'

)->

getField('

上面的用法表示获取id值为3的数据的title字段值。

其实getField方法有很多用法,但是获取某个字段的值是getField方法最常规的用法。

查询操作是最常用的操作,尤其是涉及到复杂的查询条件,我们会在查询语言一章对查询进行更加详细的讲解。

更新数据

在成功写入并读取数据之后,我们就可以对数据进行编辑操作了,首先我们添加一个编辑表单的模板文件edit.html,如下:

1. 

__URL__/update"

{$vo.title}"

{$vo.content}<

hidden"

id"

{$vo.id}"

编辑模板不同于新增表单,需要对模板进行变量赋值,所以,我们这次需要在FormAction类添加两个操作方法:

edit($id=0){

vo 

5.}

6.public 

update(){

save();

15. 

16. 

17. 

18.}

//localhost/app/index.php/Form/edit/id/1

数据的更新操作在ThinkPHP使用save方法,可以看到,我们同样可以使用create方法创建表单提交的数据,而save方法则会自动把当前的数据对象更新到数据库,而更新的条件其实就是表的主键,这就是我们在编辑页面要把主键的值作为隐藏字段一起提交的原因。

如果更新操作不依赖表单的提交的话,就可以写成:

要修改的数据对象属性赋值

5;

4.$data['

5.$data['

ThinkPHP3.1版本发布'

6.$Form->

save($data);

根据条件保存修改的数据

save方法会自动识别数据对象中的主键字段,并作为更新条件。

当然,你也可以显式的传入更新条件:

5.$Form->

id=5'

也可以改成对象方式来操作:

数据对象赋值的方式,save方法无需传入数据,会自动识别。

save方法的返回值是影响的记录数,如果返回false则表示更新出错。

有些时候,我们只需要修改某个字段的值,就可以使用setField方法,而不需要每次都调用save方法。

更改title值

setField('

对于统计字段,系统还提供了更加方便的setInc和setDec方法。

例如:

$User 

User"

实例化User对象

$User->

setInc('

score'

3);

用户的积分加3

用户的积分加1

setDec('

5);

用户的积分减5

用户的积分减1

删除数据

删除数据很简单,只需要调用delete方法,例如:

delete(5);

表示删除主键为5的数据,delete方法可以删除单个数据,也可以删除多个数据,这取决于删除条件,例如:

1.$User 

2.$User->

delete();

删除id为5的用户数据

3.$User->

delete('

1,2,5'

删除主键为1,2和5的用户数据

4.$User->

status=0'

删除所有状态为0的用户数据

delete方法的返回值是删除的记录数,如果返回值是false则表示SQL出错,返回值如果为0表示没有删除任何数据。

总结

现在,你已经基本掌握了ThinkPHP的CURD操作了,并且学会了使用ThinkPHP的create、add、save和delete方法,还有两个对字段操作的getField和setField方法。

下一篇,我们会更深入的了解下如何使用ThinkPHP提供的查询语言。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1