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

findAll() 方法
public array findAll(mixed $condition='', array $params=array ( ))
$conditionmixed查询条件或标准。
$paramsarray要绑定到的 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 ( ))
$attributesarray列表中的属性值(属性名索引)活动记录相匹配。属性值可以是一个数组将被用来生成一个条件。
$conditionmixed查询条件(即SQL语句)或标准(即CDbCriteria)。
$paramsarray要绑定到的 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 ( ))
$attributesarray列表中的属性值(属性名索引)活动记录相匹配。属性值可以是一个数组,用于生成的条件。
$conditionmixed查询条件或标准。
$paramsarray要绑定到的 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的用法一样


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值