Сохраните столбец, чтобы сохранить + в столбце.Php

Кемеровские программисты php общаются здесь
Anonymous
Сохраните столбец, чтобы сохранить + в столбце.

Сообщение Anonymous »

Я использую большой оператор SQL для создания данных для XLSX, включая использование конкатов по крайней мере в одном месте для переформатирования телефонных номеров с удалением пробелов и добавлением +1, как это требуется для этого XLSX.

Код: Выделить всё

SELECT ...
FROM
(SELECT ...
case when p2.national_number is not null then concat('+1', p2.national_number) else p2.national_number end as PhoneNumber)
Эти результаты возвращаются в виде строки, преобразованной из символов Varchars в другом месте базы данных.
Изображение

Это запускается внутри коллекции, где Laravel Excel обрабатывает это отсюда

Код: Выделить всё

return collect($receipts);
Проблема в том, что сгенерированный XLSX сохраняет это значение как число и интерпретирует текстовое поле как число, рассматривая добавление + как положительное число.
Изображение

Это не то, что я хотел. Знак плюс должен присутствовать. Я попытался использовать columnsFormats() со следующими настройками, результаты остались теми же.

Код: Выделить всё

public function columnFormats(): array
{
return [
'G' => NumberFormat::FORMAT_TEXT
];
}
Будем признательны за любые рекомендации по решению этой проблемы.

Подробнее здесь: https://stackoverflow.com/questions/787 ... n-a-column

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