牛骨文教育服务平台(让学习变的简单)
博文笔记

Yii中的findAll , findByAttributes和deleteAllByAttributes等方法的使用

创建时间:2014-03-06 投稿人: 浏览次数:1905

findAll() 方法
public array findAll(mixed $condition="", array $params=array ( ))
$condition mixed 查询条件或标准。
$params array 要绑定到的 SQL 语句的参数。
{return} array 满足指定条件的活动记录列表,如果没有找到将返回一个空的数组。
源码: framework/db/ar/CActiveRecord.php#1402 (显示) public function findAll($condition="",$params=array())
{
    Yii::trace(get_class($this).".findAll()","system.db.ar.CActiveRecord");
    $criteria=$this->getCommandBuilder()->createCriteria($condition,$params);
    return $this->query($criteria,true);
}

查找满足指定条件的所有活动记录。参见find()详细说明关于$condition和$params。

可以看出第一个参数并不是必须的,此时可以直接传递进去一个CDbCriteria或array("id" => "your value");即可

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

findByAttributes() 方法
public CActiveRecord findByAttributes(array $attributes, mixed $condition="", array $params=array ( ))
$attributes array 列表中的属性值(属性名索引)活动记录相匹配。属性值可以是一个数组将被用来生成一个条件。
$condition mixed 查询条件(即SQL语句)或标准(即CDbCriteria)。
$params array 要绑定到的 SQL 语句的参数。(只有在第二个参数是SQL语句的形式的时候才会用到这个参数)
{return} CActiveRecord 找到的记录。如果没找到任何记录,则为 null。
源码: framework/db/ar/CActiveRecord.php#1450 (隐藏) public function findByAttributes($attributes,$condition="",$params=array())
{
    Yii::trace(get_class($this).".findByAttributes()","system.db.ar.CActiveRecord");
    $prefix=$this->getTableAlias(true).".";
    $criteria=$this->getCommandBuilder()->createColumnCriteria($this->getTableSchema(),$attributes,$condition,$params,$prefix);
    return $this->query($criteria);
}

查找具有指定属性值的单个活动记录。参见find()详细说明关于$condition和$params。

可以看出第一个参数是必须的

1. 此时必须传入一个有关属性的array,如:array("id" => "your value");第二个参数可以是CDbCriteria等

2. 也可以给第一个参数传入一个空的数组,如:array(); 然后在第二个参数中包含必要的条件

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

deleteAllByAttributes()方法
public integer deleteAllByAttributes(array $attributes, mixed $condition="", array $params=array ( ))
$attributes array 列表中的属性值(属性名索引)活动记录相匹配。属性值可以是一个数组,用于生成的条件。
$condition mixed 查询条件或标准。
$params array 要绑定到的 SQL 语句的参数
{return} integer 执行影响的行数。
源码: framework/db/ar/CActiveRecord.php#1763 (隐藏) public function deleteAllByAttributes($attributes,$condition="",$params=array())
{
    Yii::trace(get_class($this).".deleteAllByAttributes()","system.db.ar.CActiveRecord");
    $builder=$this->getCommandBuilder();
    $table=$this->getTableSchema();
    $criteria=$builder->createColumnCriteria($table,$attributes,$condition,$params);
    $command=$builder->createDeleteCommand($table,$criteria);
    return $command->execute();
}

删除指定的属性值相匹配的行。参见find()详细说明关于$condition和$params。

这个和findByAttributes的用法一样


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。