Bonjour,
Je début en CakePHP et me voici confronté à un problème, il m'est impossible de récupérer un objet avec son id. Voici le code :
<?php
class MembersController extends AppController
{
var $name = "Members";
function index()
{
$this->set('members', $this->Member->find('all'));
}
function profile($id = null)
{
$this->Member->id_member = $id;
$this->set('member', $this->Member->read());
}
}
?>
Quand je veux accéder à mon objet, toutes mes valeurs sont nulles.
J'ai suivi l'exemple suivant du tuto de CakePHP :
<?php
class PostsController extends AppController {
var $name = 'Posts';
function index() {
$this->set('posts', $this->Post->find('all'));
}
function view($id = null) {
$this->Post->id = $id;
$this->set('post', $this->Post->read());
}
}
?>
Merci d'avance :)
Il faut vérifier si ta recherche en BDD n'est pas vide avant de l'envoyer à la vue.
Essaies plutôt comme ceci pour récupérer via un id :
<?php
class MembersController extends AppController
{
var $name = "Members";
function index()
{
$this->set('members', $this->Member->find('all'));
}
function profile($id = null)
{
$member = $this->Member->findByIdMember($id);
if(empty($member)){
$this->Session->setFlash('Aucun Membre n\'est lié à cette ID');
return $this->redirect(array('action' => 'index'));
}
$this->set(compact('member'));
}
}
?>
(Je ne suis pas sûr du findByIdMember, dans le pire des cas, renomme ton champ id_member en id et fais un findById)
<?php
class PostsController extends AppController {
var $name = 'Posts';
function index() {
$this->set('posts', $this->Post->find('all'));
}
function view($id = null) {
$post = $this->Post->findById($id);
if(empty($post)){
$this->Session->setFlash('Aucun article n\'est lié à cette ID');
return $this->redirect(array('action' => 'index'));
}
$this->set(compact('post'));
}
}
?>