• Как исправить ЧПУ в пагинация Yii2?

    Первое, что приходит в голову - написать свою реализацию
    MyPagination extends \yii\data\Pagination
    и там уже переопределить метод
    \yii\data\Pagination::createUrl($page, $pageSize = null, $absolute = false)

    Но этот метод мне не очень нравится. В свободное время посмотрю как это было реализовано у меня в одном проекте и, если пойму, то дополню свой ответ.
    Ответ написан
    Комментировать
  • Как правильно реализовать метод?

    public static function find()
        {
            return new static($user);
        }

    Что здесь представляет из себя переменная $user?
    в методе findIdentityByAccessToken у вас переменная $user определена - вот он и не ругается.

    И ругался он не на отсутствие find() метода, а на отсутствие других методов (см. интерфейс \yii\web\IdentityInterface):
    public static function findIdentity($id); //Получение пользователя по ID (сделайте на подобии вашего метода с токеном)
    public static function findIdentityByAccessToken($token, $type = null); //Получение пользователя по его токену (вы его уже сделали)
    public function getId(); //Получить id текущего пользователя (просто return $this-id)
    public function getAuthKey(); //Получить auth key
    public function validateAuthKey($authKey); //Удостовериться, что полученный authkey нормальный.

    Некоторые методы у вас уже есть. Создайте все эти методы с такими же параметрами. Если метод не нужен, то оставьте его пустым (так даже говорится в документации, ссылки на которую вам дал vyrkmod).

    Удачи!
    Ответ написан
    Комментировать
  • Yii2 как сделать api для фронта?

    yii\rest\UrlRule добавляет свою логику в формирование запросов и для его работы нужно добавить s в конце эндпоинта. Например, если контроллер UserController, то для активации REST правил обработки урлов нужно делать запрос вида:
    GET (PUT, POST): /api/v1/users

    Также, как подметил padlyuck, у вас есть проблемы с неймспейсом. Например PersController у вас лежит совершенно в другом неймспейсе (api\modules\v1\controllers), когда сам модуль лежит, судя по конфигурации, app\modules\api\v1\Module. Такой расклад заведомо не рабочий - у вас контроллер модуля находится в совершенно другом месте, в отличие от модуля.
    Ответ написан
    Комментировать
  • Как сделать чтоб одинаковые записи не заносились в бд?

    Нужно добавить ключ Unique к полям, по которым вы не хотите дубликатов. В вашем случае можно сделать так:
    CREATE UNIQUE INDEX ip_unique_index ON ТАБЛИЦА_С_IP (ip);

    И делать такого рода запросы при добавлении
    INSERT INTO views(ip, country)  VALUES('$ip', '$country') on duplicate key update `ip`=values('ip')


    Тем самым БД сервер, при попытка внести запись, упрется в уникальный ключ. Т.к. в запросе будет указана команда on duplicate key update сервер просто обновит значение в строчке. Удачи!
    Ответ написан
    Комментировать
  • Что нужно сделать с nginx чтобы он отдавал .json файлы по https?

    Судя по всему у вас в самом HTML коде ссылка на json указана через http. https в Nginx нужно настраивать для всего домена, а не для отдельных файлов.

    PS. Используйте в коде вместо http:// (https://) просто два слеша (//) тогда таких проблем будет минимум. Удачи!
    Ответ написан
    Комментировать
  • Где находится шаблон верстки Gii?

    попробуйте удалить папку vendor и заново сделать composer install (update) и проблема, может быть, решится. Очень похоже, что вы руками пытались поправить верстку и где-то что-то сломали) Удачи!
    Ответ написан
    Комментировать
  • На какой компьютер лучше устанавливать ubuntu?

    Ставить можно на любой ПК. Но совместимость может быть не полная. Ваша модель, насколько я понял, 2011 года. Значит проблем с железом быть не должно. Проблемы бывают на старых моделях ноутбуков. Обязательно после установки проверьте работоспособность всех компонентов ПК (вебкамера, мышь, клава, wifi, RJ45 и тд). Также настоятельно рекомендую выйти в спящий (ждущий) режим и вернуться из него и проверить
    * то, что ноут впринципе включился
    * ноут норм работает
    * работают FN клавиши регулировки звука, яркости

    По вопросам:
    1. можно и проблем никаких не будет - будет просто рядом с виндой лежать ubuntu
    2. лучше, все же, выделить 20-30гб на диске для этой задачи. Проблем это много не создаст а от геморроя избавит. Как минимум загрузчик GRUB может встать на флешку и тогда уже без флешки запустить ПК может стать проблемой
    Ответ написан
    Комментировать
  • Поиск по таблице, как сделать?

    Обязательно сделайте защиту от инъекций. Нельзя никогда и ни за что напрямую вставлять в SQL запросы данные из $_GET, $_POST и прочие без каких-либо проверок (https://habrahabr.ru/post/148701/).

    По вопросу - посмотрите в сторону Elastic Search или Sphinx. На одном проекте Sphinx крайне сильно заметно ускоряет поиск
    Ответ написан
    Комментировать