J'ai besoin d'afficher la liste des coupons et de le commander en fonction de la date créée_at et du statut d'expiration.
Les colonnes de ma table de coupons p> ma requête Laravel P> $coupons= Coupon::where('status', 2)->orderBy('created_at', 'DESC')->orderBy( First I will need to compare expired_at with today date here)->get();
3 Réponses :
comparer à expiration avec aujourd'hui ( expired_at
J'ai édité la question, le statut de coupon devra être comparable d'abord avec la date d'aujourd'hui, ce n'est pas sur la base de données Colum
La requête fonctionne mais la liste ordonnée n'est pas correcte, certains coupons expirés sont toujours affichés ci-dessus Coupon en cours -> Orderby ('Created_at', 'Desc') -> Ordonnance de l'expiration_a <". \ Carbon \ Carbon :: Today () -> TodatreString (). "Alors 0 quand Expired_a est null, alors 1 autre 1 extrémité de descente")
@Tomkur mis à jour, si vous utilisez le type de données de la date, vous devez utiliser Curdate () au lieu de maintenant ()
son travail, je ne sais pas que je ne peux pas utiliser la date de carbone, doit utiliser Curdate ()
Il suffit d'utiliser Ce Essayez cette requête: p> commander par coupon_status asc, créé_at desc ' code>
Expired_at code> peut comparé à
Curdate () Code>: P>
J'ai édité la question, le statut de coupon devra être comparable d'abord avec la date d'aujourd'hui, ce n'est pas sur la colonne DB
La requête que j'utilise à l'aide du cas où -> Orderbyraw ("Case quand Expired_a <". \ Carbon \ Carbon :: Today () -> TodatreString () ) - La commande de liste n'est pas correcte, certains coupons expirés affichent toujours des coupons en cours
@Tomkur est votre expired_at est DateTime ou date?
expire_at est la date seulement et NULL signifie qu'il n'y a pas de date d'expiration, ce seront des coupons en cours
Vous pouvez également écrire comme ceci:
$coupons= Coupon::where('status', 2)->orderBy([ 'coupon_status' => 'ASC', 'created_at' => 'DESC' ])->get();
J'ai édité la question, le statut de coupon devra être comparable d'abord avec la date d'aujourd'hui, ce n'est pas sur la base de données Colum
$ coupons = coupon :: WhereDate ('Expired_at', Carbon :: Aujourd'hui (aujourd'hui ()) -> Où ('Statut', 2) -> Orderby ("Créé_at '," Desc') -> get (); S'il vous plaît essayez avec cela? J'espère que ça va vous aider
Si vous avez des doutes dans votre requête, essayez -> tosql () au lieu de -> obtenir ()
et qu'est-ce que
coupon_status code>? stockez-vous
expired_at code>?
Coupon_Status n'est pas une base de données de colonnes, c'est simplement si le coupon est déjà expiré ou non d'état basé sur la date d'aujourd'hui, expire_at est expirée date du coupon