这是我的看法。我上传记录,如果记录没有成功上传,它会给我一个错误。我正在努力获得工作正常的记录总数,但是当我尝试获得"记录总数错误时#34; ,它给了我"错误总数"本身。我怎样才能只计算带有错误的"记录"而不是"错误的数量"本身?
$records = 0;
$errors = 0;
/* @var array $data */
foreach ($data as $result) {
$records++;
foreach ($result["model"]->getErrors() as $attribute => $errors) {
$errors++;
}
}
答案 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
]);
}