Проблемы с извлечением числовых значений для суммирования в столбце сетки Yii с использованием TSumColumnPhp

Кемеровские программисты php общаются здесь
Anonymous
Проблемы с извлечением числовых значений для суммирования в столбце сетки Yii с использованием TSumColumn

Сообщение Anonymous »


Я столкнулся с проблемой при попытке вычислить сумму данных в столбце с именем «ore» с помощью TSumColumn::class в Yii. Проблема возникает из-за дополнительного содержимого внутри ячеек, специально инкапсулированного в (' . Utility::calcoloGiornate($model->ore) . 'gg). Я стремлюсь извлечь только часть Yii::$app->formatter->asDecimal($model->ore) из каждой ячейки, чтобы вычислить сумму в нижней части столбца. Однако крайне важно сохранить часть (' . Utility::calcoloGiornate($model->ore) . 'gg) для целей отображения в каждой ячейке. Вот текущее определение столбца:

[ 'атрибут' => 'руда', 'значение' => функция ($модель, $ключ, $индекс, $столбец) { return '' . Yii::$app->formatter->asDecimal($model->ore) // суммируем только это значение . ' (' . Utility::calcoloGiornate($model->ore) . 'gg)'; //не включать это значение при суммировании, но оставить его в ячейке }, 'формат' => 'html', 'класс' => TSumColumn::класс, ], Вот класс TsumColumn, который я использую:
use kartik\grid\DataColumn; класс TSumColumn расширяет DataColumn { публичная функция getDataCellValue($model, $key, $index) { $value = родитель::getDataCellValue($model, $key, $index); if (is_numeric(str_replace(',','.',strip_tags($value)))) { $this->footer += round(str_replace(',','.',strip_tags($value)),2); } вернуть $значение; } /** * Отображает содержимое ячейки нижнего колонтитула. * Реализация по умолчанию просто отображает [[footer]]. * Этот метод можно переопределить для настройки рендеринга ячейки нижнего колонтитула. * @return string результат рендеринга * @throws \yii\base\InvalidConfigException */ защищенная функция renderFooterCellContent() { if($this->footer !== null && Trim($this->footer) !== '') { if($this->format == 'валюта') { return \Yii::$app->formatter->asCurrency($this->footer); } return \Yii::$app->formatter->asDecimal($this->footer); } вернуть $this->grid->emptyCell; } }

Вернуться в «Php»