Yii - 从findAll循环一个数组

时间:2014-04-15 17:30:46

标签: yii findall

我试图实施for循环来更新时间。

$files = File::model()->findAll('type="A" AND id='.$id);    
    function files($files,$limit=null){
        $limit = isset($limit) ? $limit : count($files);
        for($i=0;$i<=$limit;$i++){
            $files[$i]->date = date('Y:m:d H:i:s');
            $files[$i]->update();
        }
    }

此函数返回错误undefined offset 1

findAll方法的结果是什么?它是一个多维记录数组吗?我怎么能修复这个错误?

1 个答案:

答案 0 :(得分:5)

您将$limit设置为count($files),但在循环中使用$i<=$limit。应改为<

for($i=0; $i<$limit; $i++){

由于可能会应用外部$limit,因此您可以使用带有条件foreach的{​​{1}}循环。

break

请注意,foreach($files as $a => $file) { if($a == $limit) { break; } $file->date = date('Y:m:d H:i:s'); $file->update(); } 没有findAll()检索该表的数据库中的所有记录。也许您应该考虑通过CDbCriteria

添加限制