以yii计算视图中的记录总数

时间:2016-01-12 18:11:27

标签: php model-view-controller yii

这是我的看法。我上传记录,如果记录没有成功上传,它会给我一个错误。我正在努力获得工作正常的记录总数,但是当我尝试获得"记录总数错误时#34; ,它给了我"错误总数"本身。我怎样才能只计算带有错误的"记录"而不是"错误的数量"本身?

$records = 0;
$errors = 0;
/* @var array $data */
foreach ($data as $result) {
    $records++;
    foreach ($result["model"]->getErrors() as $attribute => $errors) {
        $errors++;
    }
}

3 个答案:

答案 0 :(得分:0)

每次在控制器中验证失败时,只需保持计数。你的问题和代码示例似乎并不完整,所以我只能猜到你真正想做的事情

$errorCount = 0;
if ($_POST['data']) {
    foreach ($_POST['data'] as $data) {
        // create a model (let's use $model for example) out of data received + other pre-validation work
        if ($model->validate) {
            // post validation work, then save
            $model->save(false);
        } else {
            $errorCount++;
        }
    }
}

答案 1 :(得分:-2)

您可以使用{{1}}模型方法。试试这个。希望这能帮助你。

{{1}}

答案 2 :(得分:-2)

首先在你的控制器里做。

public function actionCreate(){
   // your code there
   $records_with_errors = 0;
   foreach ($data as $result) {
      // assumed that you validate models before count
      if ($result['model']->hasErrors()) {
          $records_with_errors++;
      }
   }

   $this->render('create', [
       'records_with_errors' => $records_with_errors
   ]);
}