2017-09-08 1 views
1

je veux prendre la date d'entrée en tant que paramètre et la recherche entre les dates qui sont données en entrée. Theses sont les timestamps() fournies par laravel pour créer les deux champs comme created_at et upated_at.Je veux rechercher entre ces dates qui sont données dans created_at et updated_at mais incapable de trouver les données entre ces dates. Voici le code que j'ai créerj'ai deux champs nommés comme created_at et updated_at (horodatages) et je veux rechercher entre ces dates dans ma clause where

$startDate = $request->input('created_at'); 
    $endDate = $request->input('updated_at'); 

->select() 
->whereBetween('created_at','updated_at',[$startDate,$endDate]) 
->get(); 
+0

Toute erreur que vous obtenez? –

+0

il me donne l'erreur suivante. Mais je l'ai essayé donner en tableau mais n'a pas pu trouver. Argument 2 passé à Illuminer \ Database \ Query \ Builder :: entre lesquelles() doit être de la matrice de type –

Répondre

1

Je pense que whereBetween accepte seulement 2 paramètres. Le premier étant le nom de la colonne et le second le tableau avec les valeurs à tester. Vérifier: https://laravel.com/docs/5.5/queries#where-clauses

Vous voulez quelque chose comme:

->whereBetween('created_at', [$startDate,$endDate]) 
->whereBetween('updated_at', [$startDate,$endDate]) 
+0

bro, il me donne nulle alors qu'elle a des valeurs entre les dates données .. en tout cas merci pour vous la réponse. Je vais revérifier mon code :) et vous faire savoir si cela fonctionne –

+0

@ahmadizhar Pourriez-vous peut-être devrait-nous l'ensemble de la fonction? – Jackowski

1

L'erreur:

Argument 2 passed to Illuminate\Database\Query\Builder::whereBetween() must be of the type array

est parce que le deuxième paramètre de whereBetween() est un tableau, et vous passez une chaîne 'updated_at' ici. Donc changer pour vous:

->whereBetween('created_at', [$startDate,$endDate]) 
->whereBetween('updated_at', [$startDate,$endDate]) 

Reference