Bonjour,

Je cherche le moyende récupérer le dernier enregistrement d'une table car j'ai besoin de connaitre le dernier N° de tournée enregistrée.
j'ai beau cherché dans la doc de cakephp mais je ne trouve rien . Je pense que depuis qu'ils ont mis en place Entity et table je suis complètement largué.
j'ai créé une function beforesave dans ma table CertificatesTable. Mais je ne sais pas comment faire pour récupérer ce fameux dernier enregistrement.

Quelqu'un pourrait il me mettre sur la voix ? Merci

6 réponses


stephbf
Auteur
Réponse acceptée

merci Lartak, ça fonctionne nickel dans le controller . Je vais chercher comment le mettre dans la class certificatesTable et dans la function beforeSave.

Encore un grand merci pour cet réponse

Bonjour.
Si tu veux juste récupérer le dernier enregistrement d'une table, tu peux par exemple utiliser la méthode last :

$last = $this->Certificates
    ->find()
    ->last();

De rien, par contre pourquoi tu veux récupérer le dernier enregistrement dans le beforeSave ?
Dans quel but veux-tu récupérer le dernier enregistrement de la table exactement ?

stephbf
Auteur

En faites, je dois créer une app pour une société de taxi. Elle emmene des ado au lycée. Le probleme est le suivant:
ex :le lundi matin , elle emmene 2 ados dans une meme tournée mais le soir elle ramene les deux ados en deux tournées.
pour faire la facture, il faut que je sache si le taxi emmene les 2ados en meme temps ou pas car c'est pas le meme Kilometrage.

Dans ce cas là tu risques d'avoir un problème, car le taxi aura probablement fait des trajets entre temps, donc rien ne garanti que le dernier enregistrement de la journée corresponde à ces deux clients là.
Il te faudrait donc approfondir ta requête en définissant une condition, du genre :

$last = $this->Certificates
    ->find()
    ->where(['client_id' => $clientId])
    ->last();

Ce n'est bien sur qu'un exemple, c'est donc à adapter à ton application.

stephbf
Auteur

ok merci
Je me suis aperçu de ce cas de figure. du coup il faut que je repense à une logique plus simple. mais je vais essayé ton code et l'apdaté au besoin.

Encore un grand merci pour ton aide