• Почему не рендерится вьюшка в Yii2?

    Попробуйте заменить в контроллере это:
    return $this->render('thanks');

    На показ вот таким образом.
    // показывает файл "@app/views/site/license.php"
    echo \Yii::$app->view->renderFile('@app/views/site/license.php');
    Ответ написан
    6 комментариев
  • Когда нужно создать контроллер в Symfony?

    Контроллер лишь описывает действия над тем, что вам нужно. И получает данные от моделей посредством запросов через getPropertyObject и устанавливает их, если вы создаете что-то новое. setPropertyObject. Сама обработка правильности данных происходит в моделях, как и описание методов геттеров и сеттеров. Так же в других фреймворках есть сценарии, AcessControl - контроль доступа.

    Пример модель User: какой контроллер должен быть у нее?
    index - что будет, если человек зайдет на страницу профиля по адресу site.com/user/index/{id нужного юзера}
    registration - как создается новые юзер, описывается внутри него форма.
    Login - как пользователь авторизируется, не путайте с аутентификацией.
    Logout - как юзер выходит из системы
    update - как юзер изменяет свой профиль
    delete - что происходит если юзер удаляется.

    Суть происходящего: Я постараюсь очень тривиально, но надеюсь вы перечитаете принцип MVC. Заходит человек на сайт по адресу например site.com/user/registration
    Срабатывает ваш контролле User, затем идет экшен(действие внутри контроллера) registration Внутри этого экшена, есть две вариации "страницы", когда юзер не залогинен, мы показываем форму, когда юзер залогинен, доступа к функции регистрации не должно быть. В случае с формой, контроллер генерирует вид форму и ждет заполнения от пользователя. Кликая по кнопке Submit вызывается валидация(сам вызов метода прописан в контроллере, а то что именно это тметод делает написано в модели). Создается экземпляр класса User и наполняется данными из формы, валидируется, если валидация успешна. он сохраняет в базу и генерирует вид(страницу) об успешности.

    Что касается ваших "страниц" как видите на один экшн, может быть много страниц и разных вариаций и они не зависят от контроллеров. Чаще всего, конечно по одному виду на каждый экшн, но бывают исключения.

    Рекомендую к просмотру:
    Тут самописный MVC, но он очень простой и описывает основную идею этой концепции, после просмотра, вы самостоятельно сможете написать свой MVC, но не стоит этого делать. Костылей в интернете хватает. Просто ознакомьтесь и проясните для себя некотоыре моменты.
    Часть 1
    Часть 2
    Ответ написан
    2 комментария
  • Почему не приходят письма c smtp.gmail.com на yandex почту?

    Была проблема, что Gmail не разрешал делать рассылку с неопределенных устройств. Собственно требовалось только галочку поставить на разрешить в самом gmail.

    ну и настройки было бы неплохо увидеть, не сами логины, а в целом SSL. Сам буквально день назад делал потверждение по мыльнику. Слал на яндекс, все было в порядке.
    Ответ написан
    2 комментария
  • Как авторизоваться на сайте?

    У них же есть свой API вроде бы...
    Тут и про авторизацию и аутентификацию к ним есть.
    Докумнтация
    Ответ написан
    Комментировать
  • Требуется ли счас Yii первой версии?

    Ответ: Нет, вам могут упасть старые проекты для поддержки. Новое пишут на новом, это очевидно =)

    Насколько быстро вы устроитесь зависит от вас. Но для поступления на работу в качестве джуна. Мало будет знать только фреймворк. Тут важен стек технологий, я не знаю как в вашем городе, но лично в моем. Требуют не то что Yii 1-2.x но и попутно еще и Симфони и Ларавел минимум 2фрейма. А ангуляр с нодой будет плюсом. Умение покрывать тестами и работе в команде JIRA, Redmine, git, svn и линукс конечно же.

    Yii имеет уязвимости, которые закрыли и оптимизировали в Yii2. Добавили удобства разработки. Да и IT- индустрия такая вещь, которая не стоит на месте. Будьте готовы к тому, что учить нужно много и быстро.
    Ответ написан
    3 комментария
  • Как сделать связь в yii2 many-to-many с отрицательным условием?

    1. Заполучите принадлежащее вашей фирме.
    2. Получите все категории.
    3. Вычитайте из из общего скопа, принадлежащие.
    4. Остаток показать где вам нужно.
    5. Все запросы оберните в транзакцию. И заранее проиндексируйте поля по которым вы выбираете. База скажет вам спасибо =)

    Возможно есть и более ёмкое решение, но это из разряда очевидного.
    Ответ написан
  • В таблице обнуляются все данные, почему?

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

    Был один подводный камень. У человека была большая транзакция, но в определенном месте была отключена валидация save(false). Поскольку валидации не было, юзер мог заходить и делать двойной запрос. Отправляя деньгу при этом оставляя её у себя. К сожалению не могу найти эту тему на тостере. Решилось это более жесткой оберткой данных. Но какой метод использовал не вспомню, увы.
    Ответ написан
  • Doctrine: QueryBuilder: можно ли добавить параметры к уже установленным?

    вы же в конце своего запроса пишите
    ->getQuery
    только после этой команды формируется запрос и уходит на БД.
    До этого момента вы можете составлять запрос как угодно.
    Ответ написан
  • Как спроектировать базу данных?

    А можно пойти еще более быстрым путем, но тогда вы не научитесь проектировать.
    Гуглите Архитектура БД Блога/Магазина/кинотеатра и так далее.
    Ответ написан
    Комментировать
  • Как одной командой выполнить все миграции из модулей в Yii2?

    Yii migrate и так находит все миграции, которые не применялись. И применяет их в порядке временного возрастаение по timeStamp.

    Для отдельных модулей можно накатывать так

    yii migrate --migrationPath=@app/modules/forum/migrations --interactive=0


    interactive: логический тип - boolean (по умолчанию true). Указывает, следует ли выполнять миграцию в интерактивном режиме. Если это значение является - true, то пользователю будет выдан запрос, перед выполнением командой определенных действий. Вы можете установить это значение в false если команда используется в фоновом режиме.
    Ответ написан
  • Как делаются браузерные игры?

    Конкретно ваш сайт использует следующий стек технологий.
    0e0d09c3660f4fd9916f8eb03f5a07cc.jpg

    это то что показал Wappalyzer

    А игры используются на разных языках, но чаще всего это PHP. Но всегда есть исключения, например Empire of code Основан на разных JS фреймворках + Nginix + NodaJS

    И сама игра основана на знании питона или Жс, иначе трудно будет играть в игру, где требуется знание ЯП)

    А на php все просто, массивы туда сюда, и CRON
    Ответ написан
  • Какая CMS лучше всего подходит для сайта пассажирских перевозок?

    На которой вам легче всего работать. Под такой список задач подойдет любая ЦМС. Все они выполняют одно и тоже запись, чтение, изменение, удаление записей. Если для расчета стоимость вы используете карту, то это JS(его можно воткнуть в любую ЦМС). С остальным проблем нету на всех цмс перечисленных в ваших тегах.
    Ответ написан
    Комментировать
  • Есть ли подробный пример по Yii2 GridView -с данными из связанных таблиц?

    Все про GridView Тык
    Все про связанные данные Тык Про связи смотрите серидину статьи. Обратите внимание на использование связанной таблицы и вариативность жадных загрузок. Дабы не плодить 100 запросов.
    Ответ написан
    4 комментария
  • Как предать переменную из view в layout в twig?

    Это немного противоречит той концепции Yii2, которую она дает. в представляение уходит уже готовый, полностью собранные из фильтров и виджетов вид. Большая часть кода уже инкапсулирована и ушла ОТ сервера, а для передачи используются либо формы, либо контроллер с запросом на какое-то действие. Для смены классов, лучше придумать что-то из контроллера, а вид должен заниматься только показом содержимого.

    Но! думаю можно попробовать так, когда-то работало в Yii 1.x
    в виде
    /* 
     *Доп. параметр, причем он в layout-е 
     *будет доступен только в секции body, 
     *в секции head нет!
     */
    $this->params['myparam'] = $myparam;


    В layout
    <?php $this->beginBody() ?>
        
    <!-- Причем это доступно только в секции body -->
    <?= $this->params['myparam']?>
    
    <?= $content ?>
    
    <?php $this->endBody() ?>
    Ответ написан
  • Почему ругается софтина на неимение primary key?

    Либо PRIMARY KEY (`id`) без кавычек т.е. так PRIMARY KEY (id)

    Либо для innodb так прописывать. взято из доки
    create table innodb_uuid_no_key_unique_indexed (
      id char(36),
      unique index index1 (id)
    ) type=innodb;


    Для оракла так вообще прописывают
    ID Integer PRIMARY KEY AUTOINCREMENT,
    Ответ написан
  • Как снизить нагрузку на БД при большом количестве запросов?

    Вы используете транзакциями в своих запросах ? Если у вас есть логи или ревизии сносите их к чертям. Скрипты или сам JS - это клиентский язык, он работает у клиента в браузере, а не на серваке. Если вся проблема в скриптах, то можно же запускать их по запросу, а не держать включенными постоянно.
    Ответ написан
  • Как создать свое правило валидации в yii2?

    Как все сложно у вас. У Yii2 есть собственный валидатор строчек Документация

    В Ruls просто указать
    ['SomeString', 'string', 'length' => [4, 150]],
    / не меньше 4, но не больше 150
    Только это правило на общую длину комментария. Если вам нужно, что бы слова были не больше 150. Вам придется разбивать входящую строку на массивы слов и проверять этим валидатором.

    Для выделения всей логики, и использования валидации. Можно реализовать Встроенный валидатор
    Ответ написан
  • Как лучше организовать несколько сайтов на Yii2?

    Так можно реализовывать и это вариант. Ведь у вас и так уже по сути два приложения. Frontend - Одно приложение для клиента.
    Backend - приложение админка, второе.

    Фреймворк и служит для таких глобальных задач. Ничего не мешает объединить или дать возможности пользователям одного сайта доступ к другому(например через токены). Но в таком варианте, вам нужен мощный сервер. поскольку запросы будут нагружать не фреймворк, а сервак. И если вам положат сервер на одном, второй сайт помрет так же. Тут вопрос вашего кода и общей производительности.

    Вот еще с офицалки www.yiiframework.com
    Ответ написан
  • Нужно ли шифровать куки?

    Зачем ?? это тоже самое, что кэшировать домен, а то вдруг кто узнает. Кукисы можно в браузере менять, только толку? Аутентификации сейчас везде по токену.
    Ответ написан
    Комментировать