Ответы пользователя по тегу Yii
  • Почему при удалении одного файла в kartik-v-fileinput удаляются все остальные файлы?

    @bashcod
    Попробуйте применить дефолтную конфигурацию из примеров плагина.
    Потом по одному включайте свойства.

    И еще не понятно, вы рисунки отправляете с основной формой или отдельно. Если отдельно, там немного по другому нужно обрабатывать.
    Если вместе uploadUrl был, кажется, лишним.
    Ответ написан
    4 комментария
  • Как динамически создавать sitemap в yii2?

    @bashcod
    Не видя кода и данных отладки трудно что либо сказать конкретно.

    Количество запросов зависит от количества сущностей для которых вы строите карту сайта (N).
    Так же количество запросов зависит от количества подключаемых связей в них (N*M).
    Почитайте про отложенную и жадную загрузку.
    Научитесь пользоваться дебаггером (Yii Debug Panel). Там пишется сколько ресурсов и куда уходит, сколько времени тратится на выполнение запросов, в каком порядке они выполняются и какой участок кода вызывает их выполнение.
    Далее почитайте про кэширование результатов запросов во фреймворке.
    И еще, возможен вариант, что не индексированы поля в БД и поэтому БД дает нагрузку (тупо перебирает все записи вместо поиска по индексу).

    Если все это не помогает.
    Делаете задачу в консоли на формирование файла с картой сайта.
    Задача кладет файл куда Вам нужно.
    Далее настраиваете крон с этим задании. Периодичность выбираете в зависимости от периодичности обновления сайта и необходимости актуализации. Это позволить не делать сложные запросы при каждом посещении или запросе карты сайта.
    Ответ написан
    7 комментариев
  • Почему не заполняется ActiveRecord?

    @bashcod
    Выдержки из справчников:

    populateRelation($relationName, $relatedModelOrArray) -добавляет связанную модель в родительскую.

    Замечание:
    Этот метод не проверяет, объявлена ли связь между этими моделями (геттер), а также не устанавливает нужные значения в атрибуты. (Т.е. нужно задавать связи самим).

    link($relationName, relatedModel, $extraColumns = []) — в отличии от populateRelation, этот метод, кроме добавления связанной модели, также привязывает модели, расставляя нужные индексы. Сразу он сохраняет ТОЛЬКО связанную модель. $extraColumns сохранятся в pivot table, если связь осуществляется через неё.
    Ответ написан
  • Как сохранить значение текстового поля после отправки на форму на фреймворке yii2?

    @bashcod
    Вы получаете из формы продукт-модель.
    Грузите ее в экшене в модель, производите поиск и т.п.
    Но! Обратно загруженное не отдаете, судя по всему.
    Мне не нравится функция compact.
    Ответ написан
    Комментировать
  • На сайте Yii удалённые страницы всё равно где то хранятся в БД и передаются в карту сайта?

    @bashcod
    Работайте и эксперементируйте на локальном стенде. Сделайте дампы и перенесите на локальную машину.

    1. Смотреть сам вывод. В yii есть замечательный инструмент - debug panel. Включите и ищите по слову render. Возможно, как и говорили замешана статика. Помогает так же поиск по коду каких то статичных стилей и т.п.
    2. Почистить кэш. Если проект на advanced, то это, обычно, папка frontend/runtime/cache. Очистите папку. Обычно футер и шапку заворачивают в кэш, чтобы не рендерить каждый раз.
    Ответ написан
    Комментировать
  • Как реализовать варианты вывода полей модели в зависимости от значения глобальной переменной в Yii2?

    @bashcod
    Исходя из идеологии mvc, вопрос относится к категории view (если нет какой то логики другого уровня, например, валидации, или, скажем, замены модели, передаваемой в форму).
    Т.е. лучше всего прописывать там.
    При этом лучше разбить view на части, в зависимости от условий.

    Еще как вариант можно сделать widget, если есть вероятность переиспользования данного кейса в других местах и проектах.
    Ответ написан
    Комментировать
  • Почему не получаю письмо при запросе на сброс пароля?

    @bashcod
    Посмотрите в конфиге приложения как отправляются письма. По умолчанию обычно для dev env используется FileTransport, т.е. письма сохраняются в папку в формате date-time.eml.
    Если таких файлов нет, смотрим логи животворящие (приложения и опенсервера).
    Ответ написан
    Комментировать
  • Yii не находит класс в контроллере. В чем может быть проблема?

    @bashcod
    <?php
    namespace Foo;
    ?>

    Должно выглядеть так. Между "namespace" и "<?php" не должно быть лишних символов. Не используйте короткий тег "<?".
    Слеши д.б. непричем.
    Возможно, не корректная кодировка файла. Нужно использовать UTF8 without BOM (если так, найдите себе нормальный редактор).
    Еще один вариант - некорректное пространство app. Посмотрите, что написано в "соседних" контроллерах.
    Ответ написан
    Комментировать
  • Что за ошибка в проекте yii2?

    @bashcod
    Была примерно такая же ситуация.
    Это несоответствие версии php и расширений.
    Нужно либо правит conf файлы, либо запустить на сервере:
    apt-get upgrade
    apt-get update.
    Ответ написан
    1 комментарий