首頁  >  文章  >  後端開發  >  thinkphp笔记,thinkphp_PHP教程

thinkphp笔记,thinkphp_PHP教程

WBOY
WBOY原創
2016-07-13 09:44:50987瀏覽

thinkphp笔记,thinkphp

M 项目目录/应用目录/Lib/Model  V 项目目录/应用目录/Tpl  C 项目目录/应用目录/Lib/Action   1.PATHINFO 模式    http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2 2.普通模式    http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2 3.REWRITE模块    http://域名/项目名/模块名/方法名/键1/值1/键2/值2 4.兼容模式    http://域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2   // 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
    public function index(){
        echo "hello world";
}
    public function add(){
        echo "你好,吴昊
";
        echo '你好'.$_GET['name'].'你的年龄是'.$_GET['age'];
    }
}
http://localhost/test/index.php/Index/add?name=wuhao http://localhost/test/index.php/Index/add/name/wuhao http://localhost/test/index.php/Index/add/name/wuhao/age/18  

'URL_PATHINFO_DEPR'=>'-',    //修改URL的分隔符

'TMPL_L_DELIM'=>' 'TMPL_R_DELIM'=>'}>', //修改右定界符 http://localhost/test/index.php/Index-add-name-wuhao-age-23    http://localhost/test/index.php/Index/index
http://localhost/test/index.php/Index/add public function add(){       /*echo "你好,吴昊
";
      echo '你好'.$_GET['name'].'你的年龄是'.$_GET['age'];*/       $name='吴昊';       $this->assign('myname',$name);       //$this->myname='abc';       $this->display();  }
一些动态的数据可以通过assign()方法分配给模板显示

访问了add方法。

你好!{$myname}

D:\wamp\www\test\App\Tpl\Index   需要在方法中通过new Model(表名)的形式操作数据库   $m=new Model('User');   $arr=$m->select();   'DB_TYPE'=>'mysql',   //设置数据库类型
 'DB_HOST'=>'localhost',//设置主机  'DB_NAME'=>'thinkphp',//设置数据库名  'DB_USER'=>'root',    //设置用户名  'DB_PWD'=>'',        //设置密码  'DB_PORT'=>'3306',   //设置端口号  'DB_PREFIX'=>'tp_',  //设置表前缀  'DB_DSN'=>'mysql://root:@localhost:3306/thinkphp',//使用DSN方式配置数据库信息 ,优先级比传统方式高
 $user=new Model('User');     $arr=$user->select();     var_dump($arr);     $this->display();   'SHOW_PAGE_TRACE'=>true,//开启页面Trace 还有一种简单实用模型的方式  M() 等效为 new Model();  $m=M('User');  $arr=$m->select();   使用模型的实例可以对数据进行操作,操作的工作一般就是对数据库进行 增删改查 CURD  增 -C Create $m->add()  删 -D Delete $m->delete()  改 -U Update $m->save()  查 -R Read   $m->select()   a、模板可以遍历数组      {$vo.id}----{$vo.username}-----{$vo.sex}
   b、我们可以开启调试功能中的page_trace   1.开启调试功能    define('APP_DEBUG',true);   2.我们需要设置配置文件,开启页面trace    'SHOW_PAGE_TRACE'=>true,//开启页面Trace   读取数据  对数据的读取 Read  $m=new Model('User');  $m=M('User');  select:$m->select();    //获取所有数据,以数组形式返回  find:$m->find($id);    //获取单条数据  getField(字段名)    //获取一个具体的字段值  $arr=$m->where('id=2')->getField('username'); 创建数据     对数据的添加 Create  $m=new Model('User');  $m=M('User');  $m->字段名=值  $m->add();    返回值是新增的id号 删除数据     $m=M('User');  $m->delete(2);               //删除id为2的数据  $m->where('id=2')->delete();    返回值是受影响行数 更新数据  $m=M('User');  $data['id']=1;  $data['username']='ztz2';  $m->save($data);      返回值是受影响行数     CURD演示: ================================================================================================================================================================================================== 查询方式: 一、普通查询方式  a、字符串   $arr=$m->where("sex=0 and username='gege'")->find();  b、数组   $data['sex']=0;   $data['username']='gege';   $arr=$m->where($data)->find();   注意:这种方式默认是and的关系,如果使用or关系,需要添加数组值:$data['_logic']='or'; 二、表达式查询方式   $data['id']=array('lt',6);    $arr=$m->where($data)->select();   EQ 等于,NEQ不等于, GT 大于,EGT大于等于, LT 小于,ELT小于等于,LIKE 模糊查询    $data['username']=array('like','%ge');    $arr=$m->where($data)->select();   NOTLIKE    $data['username']=array('notlike','%ge%');    $arr=$m->where($data)->select();    注意:如果一个字段要匹配多个通配符    $data['username']=array('like',array('%ge%','%2%','%五%'),'and');    //如果没有第三个值,默认关系是or关系   BETWEEN    $data['id']=array('between',array(5,7));    $arr=$m->where($data)->select();    //SELECT * FROM `tp_user` WHERE ( (`id` BETWEEN 5 AND 7 ) )    $data['id']=array('not between',array(5,7));    $arr=$m->where($data)->select();   IN    $data['id']=array('in',array(4,6,7));    $arr=$m->where($data)->select();    //SELECT * FROM `tp_user` WHERE ( `id` IN (4,6,7) )    $data['id']=array('not in',array(4,6,7));    $arr=$m->where($data)->select();    //SELECT * FROM `tp_user` WHERE ( `id` NOT IN (4,6,7) ) 三、区间查询   $data['id']=array(array('gt',4),array('lt',10));    //默认关系是 and 的关系   //SELECT * FROM `tp_user` WHERE ( (`id` > 4) AND (`id`   $data['id']=array(array('gt',4),array('lt',10),'or')     //关系就是or的关系   $data['name']=array(array('like','%2%'),array('like','%五%'),'gege','or'); 四、统计查询   count  //获取个数;max   //获取最大数;min   //获取最小数;avg   //获取平均数;sum   //获取总和 五、SQL直接查询  a、query 主要是处理读取数据的:成功返回数据的结果集,失败返回boolean false   $m=M();   $result=$m->query("select *  from t_user where id >50");   var_dump($result);  b、execute 用于更新个写入操作:成功返回影响行数,失败返回boolean false   $m=M();   $result=$m->execute("insert into t_user(`username`) values('ztz3')");   var_dump($result);   'DB_LIKE_FIELDS'=>'title|content'     //查询语句中条件自动变为模糊查询%% 查询方式演示: ================================================================================================================================================================================================== 常用连贯操作  1.where     帮助我们设置查询条件   2.order     对结果进行排序    $arr=$m->order('id desc')->select();    $arr=$m->order(array('id'=>'desc','sex'=>'asc'))->select();  3.limit    限制结果    limit(2,5)     limit('2,5')     limit(10)    //limit(0,10)  4.field     设置查询字段    field('username as name,id')    field(array('username'=>'name','id')   field('id',true)     //获取除了id以外的所有字段  5.table  6.group  7.having 二、补充      alias 用于给当前数据表定义别名 字符串    page 用于查询分页(内部会转换成limit) 字符串和数字    join* 用于对查询的join支持 字符串和数组    union* 用于对查询的union支持 字符串、数组和对象    distinct 用于查询的distinct支持 布尔值    lock 用于数据库的锁机制 布尔值    cache 用于查询缓存 支持多个参数(以后在缓存部分再详细描述)    relation 用于关联查询(需要关联模型扩展支持) 字符串    validate 用于数据自动验证 数组    auto 用于数据自动完成 数组    filter 用于数据过滤 字符串    scope* 用于命名范围 字符串、数组  ================================================================================================================================================================================================== 视图: 一、模板的使用          a、规则   模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl)   更换模板文件的后缀名(修改配置文件)   'TMPL_TEMPLATE_SUFFIX'=>'.html',    //更改模板文件后缀名  b、修改模板文件目录层次   'TMPL_FILE_DEPR'=>'_',    //修改模板文件目录层次  c、模板主题   'DEFAULT_THEME'=>'your',    //设置默认模板主题   需要在TPL下面新建一个your文件夹作为模板主题文件夹   如何动态修改模板主题?   1、在后台准备一个功能,修改config.php文件中的默认模板项   2、通过url传递 t=主题 参数可以修改不同的模板    'DEFAULT_THEME'=>'your',//设置默认模板主题    'TMPL_DETECT_THEME'=>true,//自动侦测模板主题    'THEME_LIST'=>'your,my',//支持的模板主题列表 http://localhost/test/index.php/Index/index/t/my    http://localhost/test/index.php/Index/index/t/you 二、输出模板内容     a、display   1.display中没有参数:$this->display();   2.可以带参数    $this->display(本模块文件夹下的其他模板文件);    $this->display('index2');    $this->display(其他文件夹下的模板文件);    $this->display('Public:error');    //注意,仅仅需要在Tpl下有Public文件夹以及其中的error.html即可,不需要一定有Public模块    $this->display(其他主题下的 文件夹下的 模板文件);    //需要开启主题支持    $this->display('my:Index:index');    $this->display(一个URL路径);    $this->display('./Public/error.html');    $this->display('./Public/error.html','utf-8','text/xml');    $this->show($content);   3.fetch方法    获得模板文件中的内容,以字符串形式返回:$content=$this->fetch('Public:error');   4.show方法    不需要模板文件,可以直接输出模板内容     $content=$this->fetch('Public:error');     dump($content);     $content=str_replace('h1','i',$content);     $this->show($content); 三、模板中的赋值         //$this->assign('name','赵桐正');   $this->name='赵桐正2';     $this->display(); 四、模板替换       __PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/ __ROOT__: 会替换成当前网站的地址(不含域名) __APP__: 会替换成当前项目的URL地址 (不含域名) __GROUP__:会替换成当前分组的URL地址 (不含域名) __URL__: 会替换成当前模块的URL地址(不含域名) __ACTION__:会替换成当前操作的URL地址 (不含域名) __SELF__: 会替换成当前的页面URL   更换模板变量规则,修改配置项   'TMPL_PARSE_STRING'=>array(           //添加自己的模板变量规则   '__CSS__'=>__ROOT__.'/Public/Css',   '__JS__'=>__ROOT__.'/Public/Js',  ),   登录框实例: 引入扩展类,把ThinkPHP3.1.2_Extend里面的文件放在D:\wamp\www\test\ThinkPHP\Extend文件夹下。 对应的js和css: D:\wamp\www\test\Public\Css    ·D:\wamp\www\test\Public\Js ================================================================================================================================================================================================== 模板中的变量: 一、变量输出           1.标量输出   2.数组输出     {$name[1]}    {$name['k2']}    {$name.k1}   3.对象输出     {$name:k}    {$name->k} 二、系统变量
用法 含义 例子
$Think.server 获取$_SERVER {$Think.server.php_self}
$Think.get 获取$_GET {$Think.get.id}
$Think.post 获取$_POST {$Think.post.name}
$Think.request 获取$_REQUEST {$Think.request.user_id}
$Think.cookie 获取$_COOKIE {$Think.cookie.username}
$Think.session 获取$_SESSION {$Think.session.user_id}
$Think.config 获取系统配置参数 {$Think.config.app_status}
$Think.lang 获取系统语言变量 {$Think.lang.user_type}
$Think.const 获取系统常量 {$Think.const.app_name}或{$Think.APP_NAME}
$Think.env 获取环境变量 {$Think.env.HOSTNAME}
$Think.version 获取框架版本号 {$Think.version}
$Think.now 获取当前时间 {$Think.now}
$Think.template 获取当前模板 {$Think.template}
$Think.ldelim 获取模板左界定符 {$Think.ldelim}
$Think.rdelim 获取模板右界定符 {$Think.rdelim}
三、使用函数   {$name|strtoupper} 生成的编译后文件是:   {$name|date='Y m d H:i:s',###} 四、默认值   {$name|default='这里是默认值'} 五、运算符   + - * / % ++ --        {$name++}   模板中的基本语法: 一、导入CSS和JS文件        1、        2.import       //导入Public文件夹下面的Js目录中的test.js文件,import标签可以省略type属性,默认就是js的         //可以更改默认文件夹 设置basepath属性  3.load       //方法可以自动检测导入的文件类型 二、分支结构          未成年            青春年少            成年         >  gt     = egt      != neq     === heq     !== nheq           一个和尚挑水吃        两个和尚台水吃        三个和尚没水吃         这里是默认值   三、循环结构  1.for                              
{$j} abc
 2.volist      {$v.username}
   3.foreach   $user=M('User1');   $arr=$user->select();   $this->assign('list',$arr);   $this->display();                      {$v.id}            {$v.username}            {$v.sex}            {$v.password}         四、特殊标签  1、比较标签    eq或者 equal 等于   neq 或者notequal 不等于      gt 大于     egt 大于等于     lt 小于     elt 小于等于     heq 恒等于   nheq 不恒等于    2.范围标签   in           在这些数字里面不在这些数字的范围内     在这些数字里面不在这些数字的范围内   between     {$n}在1-10之间{$n}不在1到10之间  3.present:标签来判断模板变量是否已经赋值,   m有赋值m没有赋值  4.Empty:empty标签判断模板变量是否为空,   n为空赋值n有值  5.Defined: 判断常量是否已经定义  6.Define:在模板中定义常量  7.Assing: 模板中变量赋值 五、其他标签使用  1、在模板中直接使用PHP代码   echo "我是赵桐正"  2、建议更改左右定界符   在配置文件中改变    'TMPL_L_DELIM'=>'    'TMPL_R_DELIM'=>'}>', //修改右定界符   模板的使用技巧: 一、模板包含                 在模板中变量用[变量]接受: 二、模板渲染  1、自动开启模板渲染 设置配置文件    'LAYOUT_ON'=>true,    //开启模板渲染    准备一个模板渲染页面,在页面中使用{__CONTENT__}接受具体模板页面的内容    如果在某一个具体模板中不希望使用渲染模板,可以在页首添加{__NOCONTENT__}  2、不开启自动模板渲染可以在每一个具体页面的页首添加:  3.使用技巧:在渲染模板文件中也可以使用其他模板文件的内容                    

这里是渲染页面!!!

           {__CONTENT__}        
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn