Ответы пользователя по тегу Yii
  • Как добавить дополнительный атрибут в подключении css файлов в Yii2?

    metamorph
    @metamorph
    В registerCssFile третий параметр - массив, то есть Вам нужно как-то вот так делать:
    $this->registerCssFile('/css/style-print.css', [], ['media' => 'print']);


    При передаче строки она придет в cssFile(), а там, насколько я вижу, нет дополнительной проверки на тип.
    Ответ написан
    1 комментарий
  • Конфликт js скриптов в Yii2 при работе с формами, как устранить?

    metamorph
    @metamorph
    У Вас два варианта:

    Вариант 1. Собираете все свои скрипты в asset (пример см. в /assets/AppAsset.php) и ставите ассету зависимость от JqueryAsset:
    public $depends = [
        // 'yii\web\YiiAsset',
        'yii\web\JqueryAsset',
    ];


    Соответственно, регистрируете ассет в нужном месте.

    Вариант 2. В конфиге, в разделе "components", прописываете:
    'assetManager' => [
        'bundles' => [
            'yii\web\JqueryAsset' => [
                'sourcePath' => null,
                'js' => ['//code.jquery.com/jquery-1.11.0-beta3.min.js'] // тут путь до Вашего экземпляра jquery
            ],
        ],
    ],


    Аналогичным образом, кстати, можно переопределять вообще любые скрипты и css. Очень удобно в случаях, когда выходит новая версия (например, BS 3.1) а в Yii2 она, к примеру, пока не ожидается.

    PS. Оставьте в покое русское сообщество, оно мертво. Вся движуха на английском.
    Ответ написан
    Комментировать
  • Какие есть примеры сложных Yii-проектов?

    metamorph
    @metamorph
    Мммм, на гитхабе?.. Всякие там CMS и прочее.
    Мегапортальные решения в открытый доступ, боюсь, никто выкладывать не будет.

    Можете купить или попробовать найти в открытом доступе вот это:
    uniprogy.com/pinterest-clone , оно на Yii.
    Но там внутри фактически еще один фреймворк написан, выглядит устрашающе.
    Ответ написан
    Комментировать
  • Как в Yii реализовать удаление файлов при удалении связанных записей из БД?

    metamorph
    @metamorph
    В триггере сохранять набор полей, на основании которых вычисляется путь, а потом по крону запускать консольное yii-приложение, где функция вычисления пути уже известна.

    В порядке общего бреда:
    3. Хранить файлы в БД (плохой вариант, зато беспроблемный)
    4. Удалять файлы прямо из БД (эй, у Вас же постгрес! к нему можно хранимую логику писать на питоне и перле)
    5. Упростить вычисление пути файла до встроенной функции (грубо говоря, md5(filename)),
    Ответ написан
    Комментировать
  • Как написать правило для urlManager?

    metamorph
    @metamorph
    Вы должны понимать, что урлы вида /anyword/ сразу ломают стандартную схему /controller/action/...
    Есть как минимум три варианта решения проблемы:
    1. сначала прописать все существующие контроллеры, а если не подошло - перенаправлять на site/index
    2. сначала прописать все существующие "anyword"
    3. каким-то образом маркировать anyword-урлы, чтобы было понятно, что это не контроллер и не модуль.

    Я предпочитаю использовать суффикс-маркировку, т. е. не /anyword, а /anyword.html
    Это чаще всего согласуется с требованиями сеошников и не вызывает проблем из пунктов 1 и 2.
    Ответ написан
  • С какой версии начать изучение yii?

    metamorph
    @metamorph
    Я за вторую. К тому же, документация в удобоваримом виде уже есть (отрендеренная в красивую обертку).
    Будут вопросы - пишите на англофоруме в ветке Yii2, завсегда ответим.
    Ответ написан
    Комментировать
  • Какие читать материалы для изучения Yii?

    metamorph
    @metamorph
    Уроки - это, конечно, хорошо, но может оказаться уже неактуально. Имеет смысл поглядывать на дату статьи/видео итд.

    К тому же, заранее неизвестно, кто автор урока и соображает ли он в Yii вообще (недавно на полном серьезе видел тему "Начинаю изучать Yii, собираюсь записывать видеоуроки для таких же как я".

    В общем-то, по Yii достаточно выполнить blog tutorial, почитать документацию и начать самому что-то делать, попутно сверяясь с API reference (дока по АПИ там очень крутая и удобная). По всем вопросам касательно "а есть ли в Yii вот такая штука" и прочим best practices - на англоязычный форум. Форум активно мониторится несколькими серьезными разработчиками, чаще всего ответ на любой вопрос можно получить довольно быстро. Иногда и сам Qiang отвечает.

    Только вопросы формулируйте нормально, а то индусы со своим "насяльника сказал сделать фейсбук, подскажите экстеншн" уже задолбали вконец.
    Ответ написан
    Комментировать
  • Yii: rules и очень много сценариев, в которых чёрт ногу сломит?

    metamorph
    @metamorph
    Совершенно необязательно городить весь огород в одной модели.

    К примеру, все телодвижения с емейлом/паролем (смена, напоминалка итд) отлично укладываются в обычную модельную форму.

    Детально не смотрел, но местами кажется, что Вы прописываете некоторые поля для ВСЕХ сценариев. Это необязательно.

    Вообще, проблема ада сценариев отлично решена в Yii2 разделением собственно правил валидации и сценариев валидации. С другой стороны, шаблоны приложений yii2 недвусмысленно намекают, что по отдельным формам такие штуки все равно разбивать проще :)
    Ответ написан
    1 комментарий
  • Yii Framework: почему появляется ошибка "Error 500 Property "CEmailValidator.0" is not defined"?

    metamorph
    @metamorph
    Дело вот в этой строке:
    array('password_repeat', 'email', 'required', ...)
    Пара лишних кавычек превращает название поля в валидатор :)
    Ответ написан
    1 комментарий
  • Где кэшировать данные: в модели или в контроллере?

    metamorph
    @metamorph
    ...а с учетом того, что мы можем иногда просить кешированные данные (для фронтэнда) а иногда не кешированные (для админки) становится совсем весело :)

    В общем, от ситуации зависит. Забейте на "как правильно по MVC", думайте о том, как правильно по логике приложения.

    Сейчас как-то модно стало следовать бессмысленным шаблонам проектирования и перегружать модели функционалом (куча методов "вернутьТакиеДанные(), вернутьДругиеДанные()), тогда как через контроллер решилось бы проще и понятнее.
    Ответ написан
    2 комментария