• Как сделать redirect по значению в командной строке?

    DevMan
    @DevMan
    сделайте редирект на site.ru/contacts/?param=123&redirected=1 и проверяйте есть ли параметр redirected.
    Ответ написан
    Комментировать
  • Какие способы формирования запросов к БД в Yii2 лучше?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    $sotrudniki=Sotrudnik::find()->asArray()->all();

    И где тут связь должна дергаться? Модель не дергает связи пока Вы этго не попросите. В модели Вы описываете, как строить связь. Это не значит, что все запросы теперь будут тянуть ненужные им связи. Откройте документацию:
    https://www.yiiframework.com/doc/guide/2.0/en/db-q...
    https://www.yiiframework.com/doc/api/2.0/yii-db-ac...
    Что бы дернулась связь getPodrazd() надо как-то так строить:
    $sotrudniki = Sotrudnik::find()->joinWith('podrazd', true, 'INNER JOIN')->all();

    Совет. Никогда, ни при каких условиях, не используйте русские названия. Даже в плохих компаниях за такое отрывают руки.
    Ответ написан
    1 комментарий
  • Какие способы формирования запросов к БД в Yii2 лучше?

    myks92
    @myks92 Куратор тега Yii
    Нашёл решение — пометь вопрос ответом!
    Если вам важна производительность и хороший код, то на все чтения делаем обычные SQL запросы или используем Query Builder от Yii2.

    ActiveRecord работает с объектами, поэтому он сильно «ударяет» по производительности при составлении больших и сложных запросов. Кроме того, в объектах AR не только сами данные, но и: поведения, события, валидация...

    Если брать CRUD (Cread Read Update Delete), то для CUD (модификация данных) использовать ActiveRecord. А там где R (чтение) - используем SQL и QB. В таком случае вы будете работать с данными в виде массива, либо в виде простых DTO, на которые вы сами «маппите» данными из запроса. DTO будет удобно использовать для работы. $dto->name вместо $items['name']. Хотя, если вы используете шаблонизатор twig, — Вам особо без разницы. Но на PHP объекты (DTO) вам ещё и удобно будет использовать в редакторе.

    При таком подходе код будет чище, а производительность выше!
    Ответ написан
    2 комментария
  • Не срабатывает gulp.watch. Что не так?

    @coderxx
    keep calm and learn js
    Ошибка в том, что у вас, вероятно, установлен Gulp версии 4, использующий функцию gulp.parallel, в то время как данная конфигурация галпфайла предназначена для Gulp версии 3. Самый простой выход - откатить версию Gulp до 3.9.1, либо исправить gulpfile.js:
    gulp.task("watch", function() {
      gulp.watch('app/sass/main.sass', gulp.parallel('sass'));
    });
    Ответ написан
    3 комментария