thinkphp中的各种方法

thinkphp中的各种方法

1.A方法:用于在内部实例化控制器,调用格式

  A('[项目://][分组/]模块','控制器层名称')

  最简单的用法:1.$User = A('User');
 
  表示实例化当前项目的UserAction控制器(这个控制器对应的文件位于Lib/Action/UserAction.class.php),如果采用了分组模式,并且要实例化另外一个Admin分组的控制器可以用:1.$User = A('Admin/User');

  也支持跨项目实例化(项目的目录要保持同级)1.$User = A('Admin://User');
 
  表示实例化Admin项目下面的UserAction控制器


2.C方法:ThinkPHP用于设置、获取,以及保存配置参数的方法,使用频率较高。

3.D方法:用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用,调用格式如下:

  D('[项目://][分组/]模型','模型层名称')  方法的返回值是实例化的模型对象。

  D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。
 
  D方法最常用的用法就是实例化当前项目的某个自定义模型,例如:1.// 实例化User模型
 
  $User = D('User');

  会导入当前项目下面的Lib/Model/UserModel.class.php文件,然后实例化UserModel类,

  所以,实际上的代码可能和下面的等效:1.import('@.Model.UserModel');

  $User = new UserModel();

  但是如果使用D方法的话,如果这个UserModel类不存在,则会自动调用1.new Model('User');

  D方法可以支持跨分组和项目实例化模型,

  例如:1.//实例化Admin项目的User模型
 
  D('Admin://User')

  //实例化Admin分组的User模型

  D('Admin/User')

4.M方法:用于实例化一个基础模型类,和D方法的区别在于:
 
 1、不需要自定义模型类,减少IO加载,性能较好;
 
 2、实例化后只能调用基础模型类(默认是Model类)中的方法;
 
 3、可以在实例化的时候指定表前缀、数据库和数据库的连接信息;

  M方法的调用格式:

  M('[基础模型名:]模型名','数据表前缀','数据库连接信息')

 1、实例化基础模型(Model)类

 //实例化User模型

 $User = M('User');

 //执行其他的数据操作

 $User->select();

 2、实例化其他公共模型类

 $User = M('CommonModel:User');

 改用法其实等效于:

 $User = new CommonModel('User');

5.N方法:属于计数器方法,被用于核心的查询、缓存统计的计数和统计。但是其实可以用于应用的其他计数用途,用法比较简单,调用格式:

  N('计数位置'[,'步进值'])

  例如,我们要统计页面中的查询次数,可以用1.N('read',1);

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

  U('地址','参数','伪静态','是否跳转','显示域名');
 
  在模板中的调用格式需要采用 {:U('地址', '参数'…)} 的方式

7.R方法:用于调用某个控制器的操作方法,是A方法的进一步增强和补充。关于A方法的用法见这里。

  R方法的调用格式:

  R('[项目://][分组/]模块/操作','参数','控制器层名称')

  例如,我们定义了一个操作方法为:1.class UserAction extends Action {

     public function detail($id){

         return M('User')->find($id);

     }
}

  那么就可以通过R方法在其他控制器里面调用这个操作方法(一般R方法用于跨模块调用)1.$data = R('User/detail',array('5'));

  表示调用User控制器的detail方法(detail方法必须是public类型),返回值就是查询id为5的一个用户数据。如果你要调用的操作方法是没有任何参数的话,第二个参数则可以留空,直接使用:1.$data = R('User/detail');

  也可以支持跨分组和项目调用,例如:1.R('Admin/User/detail',array('5'));

  表示调用Admin分组下面的User控制器的detail方法。1.R('Admin://User/detail',array('5'));

  表示调用Admin项目下面的User控制器的detail方法。

8.L方法:用于启用多语言的情况下,设置和获取当前的语言定义。

  调用格式:L('语言变量'[,'语言值'])

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值