• Thinkphp 学习笔记


    前后台配置:

    在根目录文件夹中创建一个Conf文件夹

    Conf文件夹下建立一个config.php文件,里面存放公共配置信息,方便前后台调用。

     

    简单定义404页面

     

    伪静态去除.html

    Config中 URL_HTML_SUFFIX  => ‘’

    分配模版

    1:$this ->assign(‘XXX’,$XXX);

    2:$this->a = 111;

    3:$this->assign(‘xxx’,$xxx)->display();

    时间戳处理

    {$v.time|date='y-m-d H:i',###}

    分组:

     

    分组后 common 文件夹下单独使用的文件名应该较 function.php 而不是 common.php

    JS 外部地址不能解析 U函数:

    Html页面:

    非应用组写法:

     

    应用组写法

     

    后面一个空为处理 伪静态 .html  去除.html 

     

    Js页面:

     

    错误页面定制:

    Conf文件夹下

     

     

    数据存入:

    1)

     

    2):

     

    数据读取:

    1):

     

    2):

     

    随机数:

    mt_rand(min,max);

    U方法去除.html结尾

     

    验证码制作:

     

    SESSION存入数据库:

    1): 配置文件中

     

    2):创建数据库表:

     

    ThinkPHP常用各种方法

    A() 加载Action类 
    D() 加载Model类 
    S() 全局缓存配置 
    L() 获取语言定义 
    C() 获取配置值
    F() 快速文件数据读取和保存 针对简单类型数据 字符串、数组
    U() 用于完成对URL地址的组装
    I() 快速创建一个对象实例

    1.A 快速创建Action对象

    $action=new UserAction();// 等同于以下写法:$action=A("User");而且,如果当前的UserAction类还没有引入的话,A方法会自动引入。并且具有单例模式的支持,不会重复创建相同的Action对象。

    A方法支持跨项目调用,例如:
     
    $action=A("User",'Admin'); //实例化Admin项目的UserAction

    2.D 快速创建模型数据对象
     
    先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。例如:
     
    先在"你的项目"/Lib/Model下建立一个名为UserModel.class.phpPHP脚本,内容如下:
     
    class UserModel extends Model{}

    然后,无需增加任何属性和方法,就可以进行如下操作:
     
    $User=D("User"); //实例化User对象,User是你在数据库建立的一个名为"前缀_user"的数据表,也可以用$User=new UserModel()代替,进行实例化对象的操作。实例化之后,就可以对数据进行增删查改等一系列操作了,如:
     
    $User->find(1); //查找主键为1的记录

    我们在做用户金币或者是积分或者是投票的时候,需要对指定的字段自加1这时候我可以可以这样写

    $User->score='(score+1)';$s->save(); 这样我们会省下许多的步骤。

    如果要修改指定的一个字段更可以简写为如下:

    D('User')->setField('name','hehe','id=2');

    方法和 方法的区别主要在于:

    M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现;而D方法必须有创建模型类,我们可以用下面两种方法去创建一个数据表的映射对象。

    第一种:$Test=D('Test');

    第二种:$Test=new Model('Test');

    虽然这两种都可以对数据进行select,insert,delete,udpate操作,在数据验证上有很大的不同,用第一种方式实例一个模型就 会有数据检查功能,例如可以定义如果 title 没有填写的话就会提示 请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的 model 中定义好验证条件)

    D方法可以自动检测模型类,不存在时他会抛出一个异常。同时对于已实例化得得模型不会再去重复实例化(单例)。默认的D方法只能支持调用当前的项目(或者叫做应用)下的模型。例如:

    $user=new UserModel();

    等价于$user=D('user');

    如果实例化的是一个空模型,例如:

    $Demo=new Model();

    那么它等价于:

    $Demo=M();
     
    3.S 快速操作缓存方法
     
    ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用不同的缓存方式的时候并不需要关注具体的缓存细节。如:

    S('data',$Data); //使用data标识缓存$Data数据 
    S('data',$Data,3600); //缓存$Data数据3600秒 
    $Data=S('data'); //获取缓存数据 
    S('name',null); // 删除缓存标识name
     
    4.L 快速操作语言变量

    L方法提供了多语言的支持,可以快速设置和获取语言定义。

    L('USER_INFO','用户信息'); //设置名称为USER_INFO 的语言变量 
    L('USER_INFO'); //获取USER_INFO的语言变量值 
    //批量赋值 
    $array['USER_INFO']='用户信息';$array['ERROR_INFO']='错误信息'; 
    L($array);

    5.C 快速操作配置变量,用法就是 C("这里填写在配置文件里数组的下标")

    C('USER_AUTH_ON',true); //设置名称为USER_AUTH_ON 的配置参数 
    C('USER_AUTH_ON'); //获取USER_AUTH_ON的变量值

    L一样,C也支持批量赋值
     
    注意:配置参数不区分大小写

    此外从1.5版本开始,C方法还支持二维数组的操作,例如:
     
    C('USER.USER_TYPE',1); 
    C('USER.USER_AUTH_ON');  

    6. F 文件数据保存方法

    F方法主要用于项目的文件数据的写入、更改和删除,其工作机理和S方法是类似的,区别在于用途不同,数据保存的目录也不同,而且不能指定缓存方式,因为默认就是文件形式保存数据。F方法使用了var_export方法,所以只能支持简单数据类型,不支持对象的缓存。

    7. U 用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址

    该函数格式为:U('地址','参数','伪静态','是否跳转','显示域名');在模板中使用U方法而不是固定写死URL地址的好处在于,一旦 你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。在模板中的调用格式需要采用 {:U('地址', '参数'…)} 的方式。

    U方法的用法示例:

    U('User/add') // 生成User模块的add操作地址

    也可以支持分组调用:

    U('Home/User/add') // 生成Home分组的User模块的add操作地址

    当然,也可以只是写操作名,表示调用当前模块的

    U('add') // 生成当前访问模块的add操作地址

    除了分组、模块和操作名之外,我们也可以传入一些参数:

    U('Blog/read?id=1') // 生成Blog模块的read操作 并且id1URL地址

    U方法的第二个参数支持传入参数,支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,下面几种方式都是等效的:

    U('Blog/cate',array('cate_id'=>1,'status'=>1))
    U('Blog/cate','cate_id=1&status=1')
    U('Blog/cate?cate_id=1&status=1')

     

    导入 CSS/JS 文件

    <js href=”__PUBLIC__/Js/Common.js” />

    <css href=”__PUBLIC__/Css/Common.css” />

     

     

     

     

  • 相关阅读:
    求Mac 的adt插件!
    前端ajax异步传值以及后端接收参数的几种方式
    在eclipse中使用git clone 别人共享在Github的代码和上传到自己的仓库!
    Tomcat 配置虚拟路径保存、访问图片
    sssp-springmvc+spring+spring-data-jpa问题总结
    redis整合异常总结
    sssp-springmvc+spring+spring-data-jpa增删改查
    ssm+PageHelper实现分页查询
    微信小程序异常解析
    CentOS 7.4中firewall防火墙详解和配置以及切换为iptables防火墙
  • 原文地址:https://www.cnblogs.com/siichen/p/5014464.html
Copyright © 2020-2023  润新知