slo_nik, как я понял, магазины у автора не хранятся в базе, а есть жестко прописанные цифровые значения. Поэтому предложил вынести описание в статику модели.
Messi, ну, если файл действительно большой и загрузка в базу будет занимать много времени, то используйте https://github.com/yiisoft/yii2-queue.
Процесс такой: форма -> загрузка файла -> создание задачи в очередь с передачей пути к файлу -> вывод сообщения пользователю "загрузка файла добавлена в очередь".
Для запуска воркера можно использовать крон (запуск задачи с задержкой), либо добавить его в supervisor (запуск задачи сразу).
Артем Спиридонов, когда пользователь вводит Иавнов вместо Иванов, или 9180 вместо 1980 вы тоже исправляете это? Что произойдет, если топикстартер прикрутит к textarea tinymce или CKEditor? Вы и там будете менять переводы строк на br?
rinaz22, тем более. Не трогайте то, что вводите в textarea.
Ваш процесс сохранения сейчас:
1. Взять текст из textarea, заменить все переводы строк на теги br.
2. Сохранить в базу.
3. Вывести на экран как есть из базы.
Ваш процесс редактирования сейчас:
1. Заменить все теги br обратно на переводы строк и поместить в textarea.
+ первые 3 пункта.
Ваш возможный процесс сохранения:
1. Взять текст из textarea и сохранить в базу.
2. Вывести на экран текст из базы через nl2br.
Ваш возможный процесс редактирования:
1. Вставить в textarea значение из базы.
+ первые 2 пункта.
В 33-ей строке вашего скрипта стоит: $out = curl_exec($curl);
При выполнении curl_exec возвращает результат выполнения в поток. Чтобы этого не произошло, необходимо указать пааметр до его вызова: curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
knowledge, timestamp создан так, что сам по себе не может быть меньше нуля. Это количество секунд, прошедших с 1970 года с привязкой к часовому поясу.
Попробуйте:
$this->update('table_name', ['new_birth_of_date' => new Expression('FROM_UNIXTIME(GREATEST([[birth_of_date]], 0))')]);