Autour de Laravel

Hello ! comment compter les articles ayant les dates similaires dans laravel ? exemple updated_at = created_at ?

Avatar de ciol07
ciol07
$nbdemande = DB::select("SELECT COUNT(id) FROM demands WHERE demanded_at = accepted_at");

me retourne cette erreur :

htmlspecialchars() expects parameter 1 to be string, array given (View: C:\wampserver\www\immonet\resources\views\inc\en-teteAdmin.blade.php)

et

 $demandes = Demand::where('demanded_at','accepted_at')->get();
        
        $nbdemande = $demandes->count();

me retourne

Illuminate\Database\QueryException SQLSTATE[HY000]: General error: 1525 Incorrect DATETIME value: 'accepted_at' (SQL: select * from demands where demanded_at = accepted_at)

j'aimerai exécuté cette requête en laravel

SELECT COUNT(id) FROM demands WHERE demanded_at = accepted_at;
Posté il y a 1 mois
Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

Peut-être : $nbdemande = DB::row("SELECT COUNT(id) FROM demands WHERE demanded_at = accepted_at");

Dans Demand::where('demanded_at','accepted_at')->get(); , je crois que tu compare le champ demanded_at avec le string "accepted_at". Autrement dit "Est-ce que '2019-11-05 10:17:57' est égal à 'accepted_at'" et il te réponds, "l'expression 'acccepted_at' n'est pas un datetime".

Posté il y a 1 mois
Avatar de ciol07
ciol07

Bonjour, merci pour la reponse, malheureusement , le code

$nbdemande = DB::row("SELECT COUNT(id) FROM demands WHERE demanded_at = accepted_at");

me renvoi cette ligne :

Error Call to undefined method Illuminate\Database\MySqlConnection::row()

Posté il y a 1 mois
Avatar de CinquièmeDimension
CinquièmeDimension

Alors peut-être:

$nbdemande = DB::table('demand')->row("SELECT COUNT(id) FROM demands WHERE demanded_at = accepted_at")->get(); Si ta table s'appelle demand.

Edit: je suis un gogole en fait c'est raw pas row

Donc c'est plutot $nbdemande = DB::raw("SELECT COUNT(id) FROM demands WHERE demanded_at = accepted_at"); je sais plus s'il faut le ->get() à la fin ou pas.

Posté il y a 1 mois
Avatar de ciol07
ciol07

Hello, vraiment merci pour les éfforts. Malheureusement je n'optient pas le résultat voulu

ce code : $nbdemande = DB::raw("SELECT COUNT(id) FROM demands WHERE demanded_at = accepted_at");

me renvoi la requête dans ma vue soit : "SELECT COUNT(id) FROM demands WHERE demanded_at = accepted_at"

Posté il y a 1 mois
Avatar de ciol07
ciol07

Hello ! J'ai pu réaliser avec cette syntaxe :

$demande = DB::table('demands')
                ->whereColumn('accepted_at','=','demanded_at')
                ->get();
 $nbdemande = $demande->count();
         
Posté il y a 1 mois
Avatar de maximemockelyn
maximemockelyn

Hello, Tu peut la raccourcir en mettant count(); juste après get();

Avatar de ciol07
ciol07

Hello , merci pour le raccourci !

Vous ne pouvez pas répondre à ce sujet.