Хобрук: Ваш путь к мастерству в программировании

Laravel красноречиво использует область для сравнения двух столбцов

У меня есть 2 столбца даты в таблице пользователей laravel 5.0. Схема:

пользователи * идентификатор * электронная почта * активировано_на * деактивировано_на

Я хочу запросить, активирован ли пользователь, поэтому у меня есть следующая функция области видимости:

public function scopeActivated($query){
    $now = date('Y-m-d');
    return $query->whereBetween('activated_on', ['deactivated_on', $now]);
}

Запрос, который это генерирует, заключается в том, что он сравнивает столбец activated_on со строкой deactivated_on.

Есть ли способ сказать красноречивому, чтобы сравнить 2 столбца?

19.09.2015

Ответы:


1

Вы можете попробовать функцию whereRaw

$query->whereRaw('activated_on < deactivated_on AND activated_on > ?', array($now));
19.09.2015
  • Знаете ли вы, насколько хорошо это работает с другими типами баз данных? Я знаю, что это работает в sqlite, но как насчет серверов postgres и sql? 20.09.2015
  • На самом деле, я не пробовал это на сервере postgres или sql. Несколько лет назад мне это понадобилось на mysql, я думаю, что это работает на mysql, но я не совсем уверен. 21.09.2015
  • Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..