J'ai une table nommée Package. Actuellement, je veux filtrer la table. Disons que l'utilisateur insère des valeurs dans la variable, par exemple, de = 2/3/2020 et à = 10/3/2020. Ensuite, il sera calculé dans mon codage et obtenir la durée des jours, résultant noOfdays = 8 jours. Donc, à partir de la durée, il sera déterminé, quels paquets il appartient dans la durée de 8 jours.
calcul des jours :
$today = Carbon::now();
$dt1 = Carbon::createFromFormat('d/m/Y',$departure);
$dt2 = Carbon::createFromFormat('d/m/Y',$arrival);
$noOfDays = $dt1->diffInDays($dt2);
Le calcul n'a pas d'erreur, qui lorsque dd($noOfDays), il en résultera = 8 jours.
Déclaration SQL :
$packages = Package::where([
['id', '=', $plan],
['from', '<=', $noOfDays, 'AND', 'to', '>=', $noOfDays],
])
->get();
Le problème, c'est que lorsque je filtre, je reçois le paquet 1 et le paquet 2. Il n'est censé obtenir que le paquet 2. Je pense qu'il y a un problème dans l'instruction SQL. Quelqu'un a-t-il déjà été confronté à cette situation ? Car logiquement, je pense que la partie SQL est déjà vraie. Mais pourquoi il filtre et récupère le paquet 1 ?