《PHP Web应用开发案例教程》630-9(阮云兰)教案 第29课 ThinkPHP的操作与视图_第1页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第29课 ThinkPHP的操作与视图_第2页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第29课 ThinkPHP的操作与视图_第3页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第29课 ThinkPHP的操作与视图_第4页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第29课 ThinkPHP的操作与视图_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE8PAGE8PAGE7PAGE7

课题ThinkPHP的操作与视图课时2课时(90min)教学目标知识技能目标:(1)PHP中的连贯操作,以及对数据库的四个基本操作(2)掌握模型和视图的作用及相关操作素质目标:(1)培养学生的辩证思维、提升学生的科学精神、培养爱国主义情怀(2)坚定学生对我国各项国策方针、科学发展理念的认同教学重难点教学重点:PHP中的连贯操作,对数据库的四个基本操作,模型和视图的作用教学难点:对数据库的四个基本操作,模型和视图的相关操作教学方法案例分析法、问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学设计第1节课:→→→传授新知(38min)第2节课:→传授新知(15min)→课堂实训(20min)→课堂小结(3min)→作业布置(2min)教学过程主要教学内容及步骤设计意图第一节课课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过文旌课堂APP或其他学习软件,预习本节课要学习的知识【学生】完成课前任务通过课前任务,使学生预习本节课要学习的知识,增加学生的学习兴趣考勤(2min)【教师】使用文旌课堂APP进行签到【学生】班干部报请假人员及原因培养学生的组织纪律性,掌握学生的出勤情况问题导入(5min)【教师】提出以下问题:PHP对于常见的数据库的操作一般都有很多,怎样才能实现一系列的数据库的操作呢?通过问题导入,引导学生主动思考,激发学生的学习兴趣传授新知(38min)【教师】通过学生的回答引入要讲的知识,讲解PHP中的连贯操作与CURD操作14.6.4连贯操作运算符是一种特殊符号,它能对一个值或一组值执行一个指定的操作,并产生运算结果。PHP中包含算术运算符、比较运算符、赋值运算符、逻辑运算符、按位运算符、字符串运算符等。✈【教师】通过多媒体展示“常用的连贯操作方法”表格,并进行介绍常用的连贯操作方法连贯操作方法作用支持的参数类型where()用于查询或者更新条件的定义。例如,

$data=$user->where('classid="PHP02"')->select();字符串、数组和对象field()用于定义要查询的字段(支持字段排除)。例如,$Model->field('id,title,content')->select();表示要查询的结果集中包含id、title、content三个字段的值字符串和数组order()用于对结果排序。例如,$Model->where('status=1')->

order('iddesc')->limit(5)->select();字符串和数组limit()用于限制查询结果数量。例如,

$User=M('User');

$User->where('status=1')->field('id,name')->limit(10)->select();字符串和数字page()用于查询分页(内部会转换成limit)。例如,

$Article=M('Article');

$Article->page('1,10')->select();//查询第一页数据

$Article->page('2,10')->select();//查询第二页数据字符串和数字table()用于定义要操作的数据表名称。例如,

$Model->table('think_user')->where('status>1')->select();字符串和数组✈【教师】通过多媒体展示例14-10的步骤和运行结果,并进行讲解where()方法的应用。本例以where()方法为例,介绍连贯操作方法的应用。在网站根目录下新建文件夹“10”,将例14-9中的素材文件“09”目录下的文件全部拷贝到“10”文件夹中打开“.\Application\Home\Controller”目录下的控制器文件“UserController.class.php”,在其中新建demo()方法,分别使用字符串、数组和表达式作为where条件,查询“school_user”表中符合条件的数据publicfunctiondemo(){ //where条件语句 $user=M('user'); //使用字符串作为where条件 $data=$user->where('classid="PHP01"')->select(); dump($data); echo"<hr>"; //使用数组作为where条件 $data1=$user->where(['classid'=>'PHP01'])->select(); dump($data1); echo"<hr>"; //表达式查询:$map['字段1']=array('表达式','查询条件1'); $where['age']=array('GT',30);//查询age值大于30的记录 $data2=$user->where([$where])->select(); dump($data2);}在浏览器地址栏中输入“http://localhost/example/ph14/10/index.php/Home/

User/demo”✈【学生】观看、理解、记忆上述代码中的表达式查询语句中,“GT”表示“大于(>)”。表14-4中列出了常用的表达式及其含义。✈【教师】通过多媒体展示“常用的表达式及其含义”表格,并进行介绍常用的表达式及其含义表达式含义EQ等于(=)NEQ不等于(<>)GT大于(>)EGT大于等于(>=)LT小于(<)ELT小于等于(<=)LIKE模糊查询[NOT]BETWEEN(不在)区间查询[NOT]IN(不在)IN查询EXP表达式查询,支持SQL语法14.6.5CURD操作ThinkPHP提供了灵活方便的数据操作方法,其中,创建、更新、读取和删除操作(CURD)是对数据库的四个基本操作,也是必须掌握的。CURD操作通常和连贯操作配合使用。1.数据创建使用ThinkPHP可以快速创建数据对象,最典型的应用就是自动根据表单数据创建数据对象。例如://实例化User模型$User=M('User');//根据表单提交的POST数据创建数据对象$User->create();create()方法支持从其他方式创建数据对象。例如,从其他的数据对象,或者数组等。$data['name']='ThinkPHP';$data['email']='ThinkPHP@';$User->create($data);事实上,create()方法在创建数据对象的同时,完成了一系列工作,下面是create()方法的工作流程:(1)获取数据源(默认是POST数组)。(2)验证数据源合法性(非数组或者对象会过滤),失败则返回false。(3)检查字段映射。(4)判断数据状态(新增或者编辑,指定或者自动判断)。(5)数据自动验证失败则返回false。(6)表单令牌验证失败则返回false。(7)表单数据赋值(过滤非法字段和字符串处理)。(8)数据自动完成。(9)生成数据对象(保存在内存中)。create()方法创建的数据对象是保存在内存中,并没有实际写入到数据库中,直到使用add()或者save()方法才会真正写入数据库。2.数据写入ThinkPHP中使用add()方法实现数据的写入操作。例如:$User=M("User");//实例化User对象$data['name']='ThinkPHP';$data['email']='ThinkPHP@';$User->add($data);如果是MySQL数据库,还可以支持在数据插入时允许更新操作:add($data='',$options=array(),$replace=false)其中的$replace参数设置添加数据时是否允许覆盖,默认为false(不覆盖),true表示覆盖。或者使用data()方法连贯操作。例如:$User=M("User");//实例化User对象$User->data($data)->add();3.数据读取在ThinkPHP中读取数据的方式很多,一般分为读取数据、读取数据集和读取字段值。(1)读取数据。读取数据是指读取数据表中的一行数据,主要通过find()方法实现。例如:$User=M("User"); //实例化User对象//查找status值为1,name值为think的用户数据$data=$User->where('status=1ANDname="think"')->find();dump($data);使用find()方法查询数据时,可以配合相关的连贯操作方法,其中最常用的是where()方法。如果查询出错,find()方法返回false;如果查询结果为空,返回NULL;查询成功则返回一个关联数组(键值是字段名或者别名)。(2)读取数据集。读取数据集就是获取数据表中的多行记录,使用select()方法实现。例如:$User=M("User"); //实例化User对象//查找status值为1的用户数据,以创建时间排序,返回10条数据$list=$User->where('status=1')->order('create_time')->limit(10)->select();如果查询出错,select()的返回值是false;如果查询结果为空,则返回NULL;否则返回二维数组。(3)读取字段值。读取字段值就是获取数据表中的某个列的多个或单个数据,最常用的方法是getField()。例如:$User=M("User");//实例化User对象//获取ID为3的用户的昵称$nickname=$User->where('id=3')->getField('nickname');默认情况下,当只有一个字段时,返回满足条件的数据表中的该字段的第一行的值。如果需要返回整个列的数据,可以用以下格式:$User->getField('id',true);//获取id数组//返回数据格式如array(1,2,3,4,5)的一维数组,其中value就是id列的每行的值如果传入多个字段,默认返回一个关联数组,格式如下:$User=M("User");//实例化User对象//获取所有用户的ID和昵称列表$list=$User->getField('id,nickname');//两个字段的情况下返回的是array('id'=>'nickname')的关联数组,以id值为key,nickname字段值为value这样返回的list是一个数组,键名是用户的id值,键值是用户的昵称nickname。使用getField()方法,还可以限制返回记录的数量。例如:$this->getField('id,name',5); //限制返回5条记录$this->getField('id',3); //获取id数组,限制3条记录4.数据更新ThinkPHP的数据更新操作包括更新数据和更新字段。(1)更新数据。更新数据使用save()方法,例如:$User=M("User"); //实例化User对象//为要修改的数据对象属性赋值$data['name']='ThinkPHP';$data['email']='ThinkPHP@';$User->where('id=5')->save($data); //根据条件更新记录save()方法的返回值是影响的记录数,如果返回false则表示更新出错,因此一定要用恒等来判断是否更新失败。为保证数据库的安全,避免错误更新整个数据表,如果没有任何更新条件,数据对象本身也不包含主键字段的话,save()方法不会更新任何数据库记录。例如,下面的代码不会更新数据库的任何记录。$User->save($data);(2)更新字段。如果只是更新个别字段的值,可以使用setField()方法。例如:$User=M("User"); //实例化User对象//更改用户的name值$User->where('id=5')->setField('name','ThinkPHP');setField()方法支持同时更新多个字段,只需要传入数组即可,例如:$User=M("User"); //实例化User对象//更改用户的name和email的值$data=array('name'=>'ThinkPHP','email'=>'ThinkPHP@');$User->where('id=5')->setField($data);5.数据删除ThinkPHP删除数据使用delete()方法,例如:$Form=M('Form'); //实例化Form对象$Form->delete(5); //删除主键为5的数据delete()方法可以删除单个数据,也可以删除多个数据,这取决于删除条件,例如:$User=M("User"); //实例化User对象$User->where('id=5')->delete(); //删除id为5的用户数据$User->delete('1,2,5'); //删除主键为1、2和5的用户数据$User->where('status=0')->delete(); //删除所有状态为0的用户数据delete()方法的返回值是删除的记录数,如果返回值是false则表示SQL出错,如果返回值是0,则表示没有删除任何数据。【学生】聆听、思考、记录通过教师的讲解和演示,使学生了解PHP中的连贯操作,以及创建、更新、读取和删除数据(CURD)的操作第二节课问题导入(5min)【教师】提出以下问题:什么是视图,视图的作用是什么?【学生】思考、举手回答通过问题导入,引导学生主动思考,激发学生的学习兴趣传授新知(15min)【教师】通过学生的回答引入新知,介绍ThinkPHP视图,以及模板的定义、赋值和渲染14.7ThinkPHP的视图视图就是MVC中的V,用于处理数据(数据库记录)显示,通常依据模型数据创建,以模板的形式存在,默认是html格式文件。14.7.1模板定义每个模块的模板文件是独立的,为了更加高效地对模板文件进行管理,ThinkPHP对模板文件进行目录划分,默认的模板文件定义规则是:模板目录\控制器名\操作名+模板后缀默认的模板目录是模块下的View目录(模块可以有多个视图文件目录,这取决于实际的应用需要),框架中默认的模板文件后缀是.html。在每个应用下面,是以模块下面的控制器名为目录,然后是每个控制器的具体操作模板文件。14.7.2模板赋值如果要在模板中输出变量,必须在控制器中把变量传递给模板,系统提供了assign()方法对模板变量赋值,无论何种变量类型都统一使用assign()赋值。$this->assign('name',$value);//下面的写法是等效的$this->name=$value;assign()方法必须在display()和show()方法之前调用,并且系统只会输出设定的变量,其他变量不会输出(系统变量例外),这在一定程度上保证了变量的安全性。例14-11中就多次用到了该方法。赋值后,就可以在模板文件中输出变量了,可以采用以下方式输出:{$name}在输出变量时,需要注意{和$之间不能出现空格。如果要同时输出多个模板变量,可以使用以下数组形式:$array['name']='thinkphp';$array['email']='liu21st@';$array['phone']='12335678';$this->assign($array);这样,就可以在模板文件中同时输出name、email和phone三个变量。例如,例14-11中的index.html模板便使用该方式输出了用户信息。14.7.3模板渲染模板渲染,简单来说就是模板输出。模板定义并赋值后,就可以进行输出。模板输出最常用的是display()方法,其调用格式如下:display('[模板文件]')模板文件的用法支持表中的几种。✈【教师】通过多媒体展示“模板文件的用法”表格,并进行介绍模板文件的用法用法描述不带任何参数自动定位当前操作的模板文件[模块@][控制器:][操作]常用写法,支持跨模块完整的模板文件名直接使用完整的模板文件名(包括模板后缀)下面是一个最典型的用法,不带任何参数。例14-11中的display()都是以这种方式出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论