Yii - 从findAll循环一个数组

Lew*_*wis 0 findall yii

我正在尝试实现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();
        }
    }
Run Code Online (Sandbox Code Playgroud)

此函数返回错误undefined offset 1.

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

top*_*her 5

要设置$limitcount($files),但用$i<=$limit在你的循环.应该是<.

for($i=0; $i<$limit; $i++){
Run Code Online (Sandbox Code Playgroud)

由于外部$limit应用的可能性,您可以使用foreach带有条件的循环break.

foreach($files as $a => $file) {
    if($a == $limit) {
        break;
    }
    $file->date = date('Y:m:d H:i:s');
    $file->update();
}
Run Code Online (Sandbox Code Playgroud)

请注意,findAll()如果没有limit从该表的数据库中检索所有记录.也许您应该考虑通过添加限制CDbCriteria