thinkphp杂项



短方法 

获取已经设置的参数值:C('参数名称') eg:$model = C('URL_MODEL');
C('my_config',null,'default_config');如果my_config尚未设置的话,则返default_confit。
C方法也可以用于读取二维配置:
//获取用户配置中的用户类型设置C('USER_CONFIG.USER_TYPE');


系统为上面的控制器实例化提供了一个快捷调用方法A,上面的代码可以简化为:


// 假设当前模块是Home模块
$User = A('User'); 
$Blog = A('Admin/Blog');


U方法的定义规则如下(方括号内参数根据实际应用决定):


U('地址表达式',['参数'],['伪静态后缀'],['显示域名'])
eg U('Blog/cate',array('cate_id'=>1,'status'=>1))


I('变量类型.变量名',['默认值'],['过滤方法'],['额外数据源'])
eg echo I('get.id'); // 相当于 $_GET['id']
I('get.'); //相当于$_GET


$User = D('User');// 相当于 $User = new \Home\Model\UserModel();
如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高。
$Model = M();//进行原生的SQL查询$Model->query('SELECT * FROM think_user WHERE status = 1');


连贯查询
连贯操作 作用 支持的参数类型 
where* 用于查询或者更新条件的定义 字符串、数组和对象 
table 用于定义要操作的数据表名称 字符串和数组 
alias 用于给当前数据表定义别名 字符串 
data 用于新增或者更新数据之前的数据对象赋值 数组和对象 
field 用于定义要查询的字段(支持字段排除) 字符串和数组 
order 用于对结果排序 字符串和数组 
limit 用于限制查询结果数量 字符串和数字 
page 用于查询分页(内部会转换成limit) 字符串和数字 
group 用于对查询的group支持 字符串 
having 用于对查询的having支持 字符串 
join* 用于对查询的join支持 字符串和数组 
union* 用于对查询的union支持 字符串、数组和对象 
distinct 用于查询的distinct支持 布尔值 
lock 用于数据库的锁机制 布尔值 
cache 用于查询缓存 支持多个参数 
relation 用于关联查询(需要关联模型支持) 字符串 
result 用于返回数据转换 字符串 
validate 用于数据自动验证 数组 
auto 用于数据自动完成 数组 
filter 用于数据过滤 字符串 
scope* 用于命名范围 字符串、数组 
bind* 用于数据绑定操作 数组或多个参数 
token 用于令牌验证 布尔值 
comment 用于SQL注释 字符串 


如果要根据某个字段查询,例如查询姓名为ThinkPHP的可以用:
*****************************、关注下命名范围 protected $_scop
#增
$User = M("User"); // 实例化User对象// 然后直接给数据对象赋值
$User->name = 'ThinkPHP';
$User->email = 'ThinkPHP@gmail.com';// 把数据对象添加到数据库
$User->add();
#删
$User->find(2);$User->delete(); // 删除当前的数据对象
$User->delete(8); // 删除主键为8的数据
#改
$User->id = 1;
$User->name = 'TOPThink'; // 
修改数据对象$User->save(); // 保存当前数据对象
#查
$User = M("User"); // 实例化User对象
$User->getByName("ThinkPHP");
// 查找主键为1、3、8的多个数据$userList = $User->select('1,3,8'); 


不同字段相同的查询条件
$User = M("User"); // 实例化User对象
$map['name|title'] = 'thinkphp';// 把查询条件传入查询方法
$User->where($map)->select(); 
SQL:name= 'thinkphp' OR title = 'thinkphp'


$map['id'] = array(array('gt',1),array('lt',10)) ;
( id > 1) AND ( id < 10)


组合查询的主体还是采用数组方式查询,只是加入了一些特殊的查询支持,包括字符串模式查询(_string)、复合查询(_complex)、请求字符串查询(_query),混合查询中的特殊查询每次查询只能定义一个,由于采用数组的索引方式,索引相同的特殊查询会被覆盖。


query方法用于执行SQL查询操作,如果数据非法或者查询错误则返回false,否则返回查询结果数据集(同select方法)。




execute用于更新和写入数据的sql操作,如果数据非法或者查询错误则返回false ,否则返回影响的记录数。




二、使用数组作为查询条件
这种方式是最常用的查询方式,例如:


$User = M("User"); // 实例化User对象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;// 把查询条件传入查询方法
$User->where($condition)->select(); 




// 绑定Admin模块到当前入口文件


define('BIND_MODULE','Admin');
define('BUILD_CONTROLLER_LIST','Index,User,Menu');
define('BUILD_MODEL_LIST','User,Menu'
访问后会自动生成三个指定的控制器类:


Admin\Controller\IndexController
Admin\Controller\UserController
Admin\Controller\MenuController


访问会自动生成模型类:


Admin\Model\UserModel
Admin\Model\MenuModel


// 设置禁止访问的模块列表
'MODULE_DENY_LIST'      =>  array('Common','Runtime','Api'),


'URL_CASE_INSENSITIVE'  =>  true,  //大小写不敏感


D('User') //实例化UserModel
D('User','Logic') //实例化UserLogic
D('User','Service') //实例化UserService


默认的模型层是Model,我们也可以更改设置,例如:


'DEFAULT_M_LAYER'       =>  'Logic', // 更改默认的模型层名称为Logic更改之后,实例化的时候需要改成:


D('User') //实例化
UserLogicD('User','Model') //实例化
UserModelD('User','Service') //实例化UserService


默认情况下,伪静态的设置为html,如果我们设置伪静态后缀为空,


'URL_HTML_SUFFIX'=>''


$this->ajaxReturn($data);
eg
1.$data['status']  = 1;
$data['content'] = 'content';
$this->ajaxReturn($data);


2.// 指定XML格式返回数据$data['status']  = 1;
$data['content'] = 'content';
$this->ajaxReturn($data,'xml');


$this->success('操作完成','/Article/index',3);//或者error
$this->redirect('New/category', array('cate_id' => 2), 5, '页面跳转中...');




请求类型判断
IS_GET 判断是否是GET方式提交 
IS_POST 判断是否是POST方式提交 
IS_PUT 判断是否是PUT方式提交 
IS_DELETE 判断是否是DELETE方式提交 
IS_AJAX 判断是否是AJAX提交 
REQUEST_METHOD 当前提交类型 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值