Ответы пользователя по тегу Yii
  • Как реализовать динамические url?

    ivankomolin
    @ivankomolin
    В маршрутах прописать что-то типа такого:
    '<category:[\w-]+>/<product:[\w-]+>/<type:[\w-]+>' => 'category/product',


    'category/product' - это адрес вида контроллер/экшн
    В этом экшне получить параметры category product type, проверить существование и сгенерировать 404 эксепшн в случае необходимости.
    Ответ написан
    Комментировать
  • Yii2 sphinx в чем ошибка?

    ivankomolin
    @ivankomolin
    Проблема кроется в этой строке:
    'dsn' => 'mysql:host=localhost;port=9306;'

    Это очень не очевидно, но при настройках по-умолчанию, если host указан как localhost, то mysql драйвер игнорирует TCP и обращается к сокету напрямую.
    Поэтому секция sphinx в настройках создает подключение к mysql серверу вместо sphinx.

    Для решения проблемы необходимо либо указать 127.0.0.1 вместо localhost либо добавить параметр, который жестко указывает использовать протокол tcp
    Ответ написан
    Комментировать
  • Проект с нестандартной архитектурой. Как оптимизировать ajax сайт под SEO?

    ivankomolin
    @ivankomolin
    Если сайт нацелен и на пользователей и на seo, то именно таким он и должен быть - быстрым для пользователей, доступным для поисковых систем.
    Реализовал подобную систему и считаю это единственная возможность не создавать тормоза у пользователя из-за требований seo-специалистов.
    Но нужно понимать, что поисковые системы не стоят на месте и у них уже должен быть робот который умеет js. Поэтому главное правило, что в пределах одного урла и боту и браузеру с js должен отдаваться абсолютно одинаковый контент. Тогда проблем быть не должно.

    Особенности, которые были выработаны в ходе разработки:
    1. Перезагружать совсем уж мелкими кусками не стоит, т.к. это добавляет нагрузку на клиент в виде сложной логики. Чем проще js на клиенте тем лучше. В итоге от мелких кусков пришли к 2м кускам: Статическая часть и динамическая часть.
    2. Html формировать на сервере. Самый удобный вариант для клиента.
    3. Шаблон одной и той же части должен быть один как для бота так и для браузера с js. Легче поддерживать. А благодаря пункту 2 это становится проще простого.
    Ответ написан
    1 комментарий
  • Как в yii2 сделать такую мультизагрузку?

    ivankomolin
    @ivankomolin
    1. Убрать из инпута(type="file") id картинок.
    2. Добавить инпуты(type="hidden") c id картинок в той же последовательности что и инпут(type="file")
    3. На сервере провести сопоставление
    Ответ написан
    Комментировать
  • Почему может некорректно отрабатывать http аутентификация на сервере для soap сервиса?

    ivankomolin
    @ivankomolin
    Вместо
    parent::run();
    Напишите
    var_dump('+');die;

    И посмотрите результат)

    И кстати поаккуратнее с такими проверками паролей "=="
    Ответ написан
  • Почему при запуске codeception выдаёт fatal error?

    ivankomolin
    @ivankomolin
    Вообще ошибка явно говорит о проблеме. Если надпись после PHP Fatal error вам это ни о чем не говорит, то лучше выложить код, тогда вам смогут подсказать "на пальцах".
    Ответ написан
    Комментировать
  • Как убрать ненужные символы из генерации URL?

    ivankomolin
    @ivankomolin
    Сделайте var_dump $confirmLink сразу после создания.
    Это первое что нужно сделать, а уже дальше будет понятно выше проблема или ниже.

    Скорее всего это возникает после Html::a(Html::encode
    Ответ написан
    Комментировать
  • Как подключится к БД в YII первом?

    ivankomolin
    @ivankomolin
    Конфиг визуально правильный, дальше Yii::app()->db-> ... и вперед)

    Если не работает, смотрите настройки сервера mysql, а именно:
    1. Точно ли он он слушает localhost порт 3306
    2. Точно ли так называется бд
    3. Точно ли правильные данные подключения

    А вообще чтобы не гадать, неплохо было бы включить debug и посмотреть какой эксепшн вываливается в момент обращения к базе.
    Ответ написан
    Комментировать
  • Yii2 как сделать множественные вставки/удаления/обновления?

    ivankomolin
    @ivankomolin
    В yii2 есть batch insert: www.yiiframework.com/doc-2.0/yii-db-command.html#b...

    Его можно использовать для множественной вставки
    Для множественного обновления можно использовать его же, с небольшими доработками(добавлением ON DUPLICATE KEY UPDATE)
    А вот насчет массового удаления наверное просто IN, например так: ->where(['IN', 'id', $ids])
    Ответ написан
    Комментировать
  • Избыточность в searchModel или нет?

    ivankomolin
    @ivankomolin
    В первом случае получают равенство(fio = 'fio'), во втором поиск с помощью оператора like(fio like 'fio').

    А вот необходимость этого уже зависит от разных факторов и в данном случае она под большим сомнением)
    Ответ написан
    Комментировать
  • Как сделать двойнную выборку WHERE с DAO в Yii2?

    ivankomolin
    @ivankomolin
    Значит в таблице transactions нет записи которую вы хотите найти

    А вообще запросы в Yii лучше писать в таком виде:
    $users = $db->createCommand()
    ->select('*')
    ->from('transactions')
    ->where('sender=:sender', array('sender' => $accountident))
    ->andWhere('payee=:payee', array('payee' =>$accountident))
    ->queryAll();
    Так будет безопаснее)
    Ответ написан
  • Как искать пары match вхождений в yii2-sphinx?

    ivankomolin
    @ivankomolin
    Нужно address в индексе оформить как MVA
    И тогда можно будет искать по точному совпадению атрибута, а не через полнотекстовый поиск match (например так: WHERE address="Moscow" AND address="New york")
    Ответ написан
    Комментировать
  • Yii Chtml::tag, из за происходит вывод несуществующего символа?

    ivankomolin
    @ivankomolin
    При вызове метода tag() третьим параметром передается содержимое тега, если же нужен одиночный тег, то можно передать false.

    Т.к. вы передаете true, то это значение автоматически преобразуется в 1 и печатается как содержимое тега
    ------------------------------------------------------------------------------------------------------------------------
    Этот код:
    CHtml::tag('i', array('class'=>'glyphicon glyphicon-user'), false)

    Сформирует это:
    <i class="glyphicon glyphicon-user" />
    ------------------------------------------------------------------------------------------------------------------------
    Этот код:
    CHtml::tag('i', array('class'=>'glyphicon glyphicon-user'), '');

    Сформирует это:
    <i class="glyphicon glyphicon-user"></i>
    ------------------------------------------------------------------------------------------------------------------------
    Ответ написан
    3 комментария