面向对象编程。侧重的是对象。
MVC
M:model 模型; 主要是对底层的数据库进行操作
V:view 视图;
C:控制器; 业务逻辑的处理过程和数据的调用过程!
V:view 视图
C:控制器;
M:模型。
thinkphp 3.2.3 就是严格遵循MVC构架的!
URL:
其中a,c,m都可省略。若省略。
则默认值分别是:index,index,home
index.php?a=abc&c=index&m=home
控制器(文件名命名规则,驼峰法命名规则,首字母大写!)
循环模板:::abc是模板变量。
c:
$array=array(array('id'=>1),array('id'=>2));
$this->assign("abc",$array);
v:
<volist name="abc" id="vo">{$vo['id']}<br/></volist>
1、系统函数;
格式如:{$list.abc|substr=1,1}
{$a1|substr=###,0,2}
2、自定义函数;
思考:把自定义的函数放到哪里去?
自定义方法的调用【如何自定义方法/系统内置方法】
自定义方法:
{$list.xiaowang|abc=###,3}
function abc($str,$len){
return $str."123456"."--".$len;
}
函数可以放到
ThinkPHPCommonfunctions.php
或
ThinkPHPThinkPHP.php
tp中URL的配置项:::
URL_MODEL设置
普通模式 0 //默认的设置。
PATHINFO模式 1
REWRITE模式 2
兼容模式 3
提示:
普通模式下url是这样的!
http://localhost/?m=home&c=user&a=login&var=value
URL路径的定义!!
{:U('控制器名/方法名')}
{:U('控制器名/方法名?id=1&name=2')}
tp中数据库的链接配置!
手册,搜索,数据库,把配置项放到config.php中。
如何验证数据库连接有效呢?
我们可以在控制器中读一些表信息!若能读出,则说明数据库连接ok!
控制器中的U方法!
U('index/GuanLi')
如何导入自定义的类文件!!!!!!!!!!!!
namespace HomeController;
use ThinkController;的含义是把
ThinkPHPLibraryThink 中的Controller.class.php导入到定义的命名空间里了。
我们建议把自定义的方法封装到一个自定义类中。如Diy.class.php。在控制器中,use ThinkDiy; 导入!
引用方式:Diy::checkGs
();
接下来我们优化下数据库的操作!
数据库的操作无非就是对数据的增、删、改、查!
查::============================================
$obj=M('表名');
$obj->query($sql); //$sql为完全自定义的sql。
$users=M("ceshi");
$arr=$users->where("id=2")->find();//结果是1维数组;只能是一条。
$arr=$users->where("id=2")->select();//结果是2维数组;
增加::============================================
$users->add($arr); //返回值是增加后的主索引值,如:id值。
$arr是数组;数组的格式要求如下:其中username和password是表字段名!
$data['username']='aabbcc';
$data['password']='aabbcc111';
删除::==============================================
return $users->where($where)->delete();//返回值是删除的真实记录数。
修改::==============================================
return $users->where($where)->save($arr);//返回的值是实际更新的记录数。
$arr是数组!!
注意::::::::::::::
$对象名=M("表明");
$对象名->where()->动作();