Bonjour, j'aimerai mettre en relation des données comme par exemple un article avec une catégorie sauf que moi il s'agit de question.
Dans ma base j'ai 2 tables que voici :
CREATE TABLE questions
(
id INT(32) NOT NULL ,
libelle VARCHAR(255) NOT NULL ,
category_id INT(3) NOT NULL ,
ask_id INT(10) NULL ,
, PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS categories
(
id INT(3) NOT NULL ,
libelle VARCHAR(60) NOT NULL ,
slug varchar(60) NOT NULL
, PRIMARY KEY (id)
);
ALTER TABLE questions
ADD FOREIGN KEY FK_QUESTIONS_CATEGORIES (category_id)
REFERENCES categories (id) ;
J'aimerai afficher dans quelle catégorie se trouve une question le hic c'est que je n'y arrive pas.
Dans mon Model Question j'ai ceci ->
public $belongsTo = array('Category');
Dans mon Controller Questions j'ai ceci ->
public $uses=array('Questions');
public function index(){
debug($this->Questions->find('all'));
}
Mais lorsque je vais voir ma page je n'ai pas La catégorie approprié qui s'affiche.
array(
(int) 0 => array(
'Questions' => array(
'id' => '1',
'category_id' => '1',
'ask_id' => '2',
'libelle' => 'Question 1'
)
}
Savez vous d'ou viens le problème merci de vos réponse bonne journée.
Ps: Version 2.3.2 de CakePhp
salut, il me semble de mémoire qu'il faux définir scertain paramètre.
c'est moi je procède ainsi:
public $belongsTo = array(
'Category' => array(
'className' => 'Category',
'foreignKey' => 'category_id',
'conditions' => '',
'fields' => 'name',
'order' => ''
)
);
ça marche chez moi peux importe le contrôler qui est associé au catégories.
J'ai lu je ne sais plus ou qu'il y avait des problèmes avec la 2.3.2 donc j'ai pris une ancienne version la 2.3.1 et sa marche. Mais je trouve sa bizarre que cela ne fonctionne pas sur le 2.3.2.
debug($this->Questions->find('all'));
Avec
debug($this->Question->find('all'));
et sans
public $uses=array('Questions');
Juste
public $belongsTo = array('Category');
est suffisant si aucun paramètre particulier est demander.
A mon devrait ca devrait fonctionner....
et sans la relation SQL entre les 2 tables sauf si tu veux en plus une gestion des enregistrements par mysql.
Bonjour, merci de t'as réponse mais cela ne marche toujours pas chez moi.
Ps: Version 2.3.2 de CakePHP
et si tu fais un
debug($this->Questions->Category->find('list'));
tu as bien la liste de tes catégories ?
Non justement. Mais un joli message d'erreur.
Error: Call to a member function find() on a non-object