laravel красноречиво с множеством проблем - PullRequest
2 голосов
/ 22 апреля 2020

В базе данных моего laravel приложения у меня есть таблица для хранения записей пользовательских платежей.

У меня есть столбец create_at для хранения даты создания записи и столбец payment_annum для хранения типа подписки (ежемесячно или ежегодно)

Теперь я пытаюсь отобразить эти записи на блейд-панели администратора. Но дело в том, что мне нужно отображать только ежемесячные записи за месяц.

До сих пор я мог получать данные, где тип подписки помесячный, но изо всех сил пытаться отфильтровать его по последнему месяцу.

Это мое текущее красноречивое письмо, в котором проверяется только тип подписки

$get_monthly_payments_lastmonth=AppPayment::where('payment_annum','=','monthly')
        ->get();

Так как же проверить состояние «последний месяц»

Ответы [ 2 ]

1 голос
/ 22 апреля 2020

попробуйте изменить свой красноречивый на это,

$get_monthly_payments_lastmonth=AppPayment::where('payment_annum','=','monthly')
        ->whereMonth('created_at', '=', Carbon::now()->subMonth()->month)
        ->get();

это даст вам записи за последний месяц, где payment_annum ежемесячно

0 голосов
/ 22 апреля 2020

Хотите ли вы, чтобы ваш запрос возвращал все элементы, созданные за последний месяц (по состоянию на сегодня: created_by, соответствующие 2020-03-*) или, скорее, созданные в течение за последний месяц (created_by >= 2020-03-23)?

На март продлить принятое решение на

$get_monthly_payments_lastmonth=AppPayment::where('payment_annum','=','monthly')
        ->whereMonth('created_at', '=', Carbon::now()->subMonth()->month)
        ->whereYear('created_at', '=', Carbon::now()->subMonth()->year)
        ->get();

Для последнего это должно сделать:

$get_monthly_payments_lastmonth=AppPayment::where('payment_annum','=','monthly')
        ->whereDate('created_at', '>', Carbon::now()->subMonth())
        ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...