[RESOLU] Récupérer dernières article findBy

Eléphanteau du PHP | 35 Messages

05 mai 2017, 10:42

Bonjour à tous,

Sur ma page d'accueil je récupère tout mes articles mais j'aimerai que dans l'en tête j'ai une zone réservé pour afficher le dernier article.

N'étant pas forcément à l'aise avec doctrine, j'ai cherché les différentes façon de faire une requêtes avec ce que j'attends j'ai donc fait ceci

Code : Tout sélectionner

$la = $em->getRepository("Entities\Article")->findOneBy(array('id' => 'desc'));
Mais ça ne marche pas je comprends pas, je lui demande clairement que je fais une recherche du dernier article en prenant l'id par ordre desc no ?

Merci par avance pour votre aide.
Programmation - tuto pour débutant fait par un débutant -> http://mycodingway.com/

ViPHP
ViPHP | 2291 Messages

05 mai 2017, 11:57

Bonjour,

Comme ceci je pense :)
$la = $em->getRepository("Entities\Article")->findBy([], ['id' => 'DESC'], 1);
Ceci dit ton code est correct aussi #-o
Modifié en dernier par dunbar le 05 mai 2017, 13:24, modifié 1 fois.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 35 Messages

05 mai 2017, 13:12

Malheureusement non ça ne marche pas :p
Programmation - tuto pour débutant fait par un débutant -> http://mycodingway.com/

ViPHP
ViPHP | 2291 Messages

05 mai 2017, 13:17

C'est quoi l'erreur ?
Montre le code complet.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 35 Messages

05 mai 2017, 13:27

pas vraiment d'erreur ma page s'affiche correctement je n'ai juste pas le nom de mon episode qui apparait. Alors que si je fais un :

Code : Tout sélectionner

$la = $em->getRepository("Entities\Article")->findOneByTitre('montitre');
ça fonctionne bien
Programmation - tuto pour débutant fait par un débutant -> http://mycodingway.com/

ViPHP
ViPHP | 2291 Messages

05 mai 2017, 13:50

Petite question tu as bien un getter pour l'id dans ton Entity ?
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 35 Messages

05 mai 2017, 13:51

Oui absolument
Programmation - tuto pour débutant fait par un débutant -> http://mycodingway.com/

ViPHP
ViPHP | 2291 Messages

05 mai 2017, 13:55

Que donne
un dump() dans ta vue ?
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 35 Messages

05 mai 2017, 13:59

array(1) { [0]=> object(Entities\Article)#96 (5) { ["id":protected]=> int(4) ["auteur":protected]=> string(15) "User 1" ["titre":protected]=> string(11) "Lorem ipsum" ["contenu":protected]=> string(739) "[..]" ["dateAjout":protected]=> string(19) "2017-05-05 10:26:06" } }

C'est pourtant bien ce que j'attends donc pourquoi il me l'affiche pas ?
Programmation - tuto pour débutant fait par un débutant -> http://mycodingway.com/

ViPHP
ViPHP | 2291 Messages

05 mai 2017, 14:04

erreur :(
Modifié en dernier par dunbar le 05 mai 2017, 14:06, modifié 1 fois.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 35 Messages

05 mai 2017, 14:05

No du tout je fais ceci :

<h4>- N° {{ la.id }} - <br/>{{ la.titre }}</h4>
Programmation - tuto pour débutant fait par un débutant -> http://mycodingway.com/

ViPHP
ViPHP | 2291 Messages

05 mai 2017, 14:07

Montre le code de ton controlleur et ta vue ?
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 35 Messages

05 mai 2017, 14:14

class HomeController extends Controller
{
    public function homeAction($id = false)
    {
        $em = $this->getDoctrine();
        $articles = $em->getRepository("Entities\Article")->findAll();
        $la = $em->getRepository("Entities\Article")->findBy([], ['id' => 'DESC'], 1);
        $comment = $em->getRepository("Entities\Commentaire")->findAll();
        return $this->render('home.html.twig',[
            'articles' => $articles,
            'comment' => $comment,
            'la' => $la
        ]);
    }
}


<body>
<div id="header" class="container-fluid">
    <div id="item_header" class="container">
        <div id="left_item" class="col-md-4">
            <h4><a href="/">My Blog</a></h4>
        </div>
        <div id="item"class="col-md-8">
            <ul>
                <li><a href="/">Home</a></li>
                <li><a href="/login">Login</a></li>

            </ul>
        </div>
    </div>
    <div id="la" class="container">
        <h5>Le dernier épisode</h5>
        <h4>- Episode {{ la.id }} - <br/>{{ la.titre }}</h4>
    </div>
    <div id="buttonMore" class="container">
        <a href="/episode=" class="btnMore" role="button">Voir l'épisode</a>
    </div>
</div>

<div class="container-fluid">

    {% block content %}

    {% endblock %}

</div>
Programmation - tuto pour débutant fait par un débutant -> http://mycodingway.com/

ViPHP
ViPHP | 2291 Messages

05 mai 2017, 14:18

Et ceci donne quoi ?
 {% for l in la %}
<h4>- Episode {{ l.id }} - <br/>{{ l.titre }}</h4>

{% endfor %}

Comme tu récupère un tableau je pense que ça va aller beaucoup mieux :)
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphanteau du PHP | 35 Messages

05 mai 2017, 14:21

ça marche en faisant ça ^^ mais je comprends pas, pourquoi faire une boucle sachant que j'en ai besoin que d'un ?
Programmation - tuto pour débutant fait par un débutant -> http://mycodingway.com/