Создание контакта $contact->save

1

Сделайте что бы при создании контакта $contact->save($data); можно было поставить last_datetime.

Второй раз на эти грабли натыкаюсь. Пришлось такую фигню сооружать в запросе IF (t0.last_datetime is NULL, '', t0.last_datetime < DATE_SUB(NOW(), INTERVAL 1 MINUTE))

5 комментариев

  • +2
    Дмитрий Елшин Дмитрий Елшин 3 января 2018 02:21 #

    После создания контакта вам возвращается его идентификатор.

    Используйте метод updateById, сразу после создания:

    $contact->save($data);
    $contact_id = $contact->getId();
    $contact_model = new waContactModel();
    $contact_model->updateById($contact_id, array('last_datetime' => date("Y-m-d H:i:s")));
  • +1
    Алексей Алексей Webasyst 31 декабря 2017 18:26 #

    А зачем это нужно?
    Это значение установится после авторизации контакта.

  • +1
    racheev racheev 31 декабря 2017 19:07 #

    Ну лично мне нужно... Я храню в базе контакты ВК они у меня отрабатывают некоторые действия. Но как контакты они в систему не заходят. Просто в запросе что бы огород не городить а вам 2 строчки кода..

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

    • +1
      info@ravencode.ru info@ravencode.ru 1 января 2018 16:04 #

      а что мешает передать last_datetime в $data?

      • +1
        Дмитрий Елшин Дмитрий Елшин 3 января 2018 02:12 #

        В методе save() используется метод removeSpecialFields(), который не позволяет при сохранении нового контакта задавать специальные поля.

        Добавить комментарий

        Чтобы добавить комментарий, зарегистрируйтесь или войдите