bonsoir,
Voila j'ai réussit a me dépatouiller un peut Composer ma poser quelques soucis mais ça va !
je teste en ce moment Lara et Cake mai il y a un truc qui me chiffone dans Cake, voila mon controller de test j'ai suivis un peut le tuto déprécier de Grafikart.
Ce que je fais :
namespace App\Controller;
use App\Controller\AppController;
class PostsController extends AppController {
public function index() {
$query = $this->Posts->find()
->select(['id', 'name', 'content'])
->where(['id !=' => 1])
->order(['date_post' => 'DESC']);
//$query = $this->Posts->find('all');
foreach ($query as $post) {
debug($post->name);
debug($post->content);
}
}
}
je me suis référé a la doc.
J'ai bien mon article mai le contenu s'affiche au dessus du template et quand je met le foreach dans la vue ça ne fonctionne pas la variable $query n'est pas définie.
Et je ne trouve rien dans la doc je ne sais pas où chercher le jargon me pose problème aussi je ne comprend rien a ce qu'il raconte.
et enfin le model :
<?php
namespace App\Model\Table;
use Cake\ORM\Table;
class PostsTable extends Table {
}
il sert a quoi ?
Voila j'en ai fini pour le moment :) thank
C'est normal que tes données sont au dessus de ton contenu, tu le débug dans le controller, pour les passer à la vue, tu doit utiliser la méthode set() de la façon suivante:
$this->set(['nomVarible', $variable]);
Ou encore
$this->set(compact($variable));
De plus, ton idée d'utiliser le find('all') est plus appropriée dans le controller.
Dans le cas où tu récupère en fonction de l'ID, utilise la méthode get :
$post = $this->Posts->get($id);
$this->set(['post', $post]);
Ou ajouter à la fin de ta recherche la méthode first();
$post = $this->Posts->find()->where(['id' => $id])->first();
Oui merci depuis j'ai réussi a faire ma page, mais j'ai pas compris pourquoi je dois faire un foreach alors que je ne souhaite que le contenue qui corespond a l'id en get :
public function single($id) {
$post = $this->Posts->find()->where(['id' => $id]);
$this->set(['post' => $post]);
}
dons oui ça fonctionne j'ai bien ma vue mai dans un foreach c'est bizzar cette méthode pour un seul résultat.