Yii数据库操作——名字空间(named scopes)的三种用法
一、单表的named scopes
1,scopes一般用法
用不同的名字空间获取符合各种条件的结果集。常用于:
a,同一个事物不同状态下的结果集。
b,首页或侧边栏展示。例如,取最新的5篇帖子。
c,冒泡的形式展示一个结果值。例如,某个机房有多少单子。
(1)在../models/Post.php中配置
public function scopes(){
return array(
'published'=>array(
'condition'=>'status=1',
),
'recently'=>array(
'order'=>'create_time DESC',
'limit'=>'5',
),
);
}
(2)在../controllers/PostController.php等地方使用
名字空间只用在find中。相当于过滤filter。
(1) 只用在find方法的左边。
(2) 类级别。必须使用ClassName::model()。
例如,$posts = Post::model()->published()->recently()->findAll();
2,带参数的名字空间
定义一个在名字空间(scopes)中已经存在的方法名。
public function recently($limit = 5){
$this->getDbCriteria()->mergeWith(array(
'order'=>'create_time DESC',
'limit'=>$limit,
));
return $this;
}
$posts = Post::model()->published()->recently(3)->findAll();
如果不指定3,则默认返回5。
3,缺省空间
比如,解决多语言问题。
public function defaultScope(){
return array(
'condition'=>"language='". Yii::app()->language ."'",
);
}
$content = Content::model()->findAll();
注:缺省空间只用在查询中,在插入或删除中被忽略。
二、多表关联的named scopes
$posts = Post::model()->published()->recently()->
with('comments')->findAll();
其中别名comments是在../models/Post.php数据库规则中定义。
分享到:
相关推荐
yii对象操作、直接数据库操作、事物等操作。几乎所有的操作都收录了
Yii框架数据库操作分享ppt (Mac版,windows需转换格式)
主要介绍了Yii数据库缓存用法,结合实例形式分析了Yii数据库缓存的使用步骤与相关实现代码,需要的朋友可以参考下
yii DAO编程yii DAO编程yii DAO编程yii DAO编程yii DAO编程yii DAO编程yii DAO编程yii DAO编程
本文实例讲述了yii数据库的查询方法。分享给大家供大家参考,具体如下: 这里介绍两种查询方法。一种是直接查询,一种是使用借助criteria实现查询。 复制代码 代码如下:$user=User::model(); 1. 直接查询: $arr=...
本篇文章主要介绍了Yii2——使用数据库操作汇总,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
php YII框架数据库备份模块
对于复杂查询的场景,应使用 Yii DAO 建立数据库连接 默认情况下, 它假定 db 应用组件提供了所需的 CDbConnection 数据库连接实例, 如果你想使用一个不是 db 的应用组件,或者如果你想使用 AR 处理多个...
YII 2数据库迁移(Migrations) 使用教程,使用migrate功能迁移数据库
主要介绍了YII2框架中操作数据库的方式,结合实例形式总结分析了YII2使用createCommand方式及AR(Active Record)方式操作数据库相关实现技巧,需要的朋友可以参考下
主要介绍了Yii2数据库操作常用方法,结合实例形式总结分析了Yii2常用的增删查改及配置相关操作技巧,需要的朋友可以参考下
主要介绍了yii框架数据库关联查询操作,结合实例形式总结分析了yii数据库关联查询的常见操作方法与使用注意事项,需要的朋友可以参考下
本篇文章主要介绍了Yii2框架实现数据库常用操作总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了Yii实现多数据库主从读写分离的方法,通过针对Yii数据库类的扩展实现多数据库主从读写的分离功能,是非常实用的技巧,需要的朋友可以参考下
yii2-schemadump 从现有数据库生成模式。演示版要求PHP 7.3或更高版本Yii 2.x安装composer require --dev jamband/yii2-schemadump用法在config / console.php中添加以下内容: return [ . . . 'components' => [ . ...
主要介绍了Yii操作数据库的3种方法,需要的朋友可以参考下
微服务之数据库服务-服务端(PHP+YII),以YII、自定义数据操作两种方式组成的数据库微服务的服务端。