Bonjour à tous,

Je suis entrain de créer un site internet multilingue pour un de mes clients avec un CMS que j'ai développé grâce à CakePHP. Pour l'internationalisation j'ai suivi le très bon tutoriel de Pierre-Emmanuel Fringant. Pour les urls je n'est pas de soucis, pour l'insertion/édition non plus, le problème est que je ne récupère aucune donnée lorsque j'utilise un findAll alors que ma base de donnée est correctement alimenté.

J'ai lu pas mal de post sur le forum français de Cakephp mais je n'ai rien trouvé, si cette question à déjà été poster et résolu j'en suis navré mais je ne l'ai trouvé via le moteur de cherche.

Voici ma table article ainsi que la table pour l'i18n :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CREATE TABLE `articles` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `active` tinyint(1) DEFAULT NULL,
  `active_intro` tinyint(1) DEFAULT NULL,
  `on_homepage` tinyint(1) NOT NULL DEFAULT '0',
  `into_trash` tinyint(1) NOT NULL DEFAULT '0',
  `created` datetime DEFAULT NULL,
  `modified` datetime DEFAULT NULL,
  `category_id` int(3) NOT NULL,
  PRIMARY KEY (`id`)
)
 
CREATE TABLE `article_i18ns` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `locale` varchar(6) COLLATE utf8_unicode_ci NOT NULL,
  `model` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `foreign_key` int(10) NOT NULL,
  `field` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `content` text COLLATE utf8_unicode_ci,
  PRIMARY KEY (`id`),
  KEY `locale` (`locale`),
  KEY `model` (`model`),
  KEY `row_id` (`foreign_key`),
  KEY `field` (`field`)
)
Voici le contenu des deux tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
INSERT INTO `articles` (`id`, `active`, `active_intro`, `on_homepage`, `into_trash`, `created`, `modified`, `category_id`) VALUES
(1, 1, 0, 1, 0, '2010-04-06 16:10:51', '2010-04-06 16:10:51', 0);
 
--
-- Contenu de la table `ns_article_i18ns`
--
 
INSERT INTO `article_i18ns` (`id`, `locale`, `model`, `foreign_key`, `field`, `content`) VALUES
(1, 'fre', 'Article', 1, 'title', 'test fre'),
(2, 'eng', 'Article', 1, 'title', 'test eng'),
(3, 'fre', 'Article', 1, 'introduction', ''),
(4, 'fre', 'Article', 1, 'article', '<p>test fre</p>'),
(5, 'eng', 'Article', 1, 'article', '<p>test eng</p>');
Voici le contenu de mes différents fichier :
{app}/models/article.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
class Article extends AppModel {
 
    var $name = 'Article';
 
	var $translateModel = 'ArticleI18n';
 
	var $actsAs = array(
		'Translate' => array(
			'title' => 'Titre',
			'introduction' => 'Introduction',
			'article' => 'Article',
			'link_rewrite' => 'LinkRewrite',
			'meta_title' => 'MetaTitle',
			'meta_keyword' => 'MetaKeyWord',
			'meta_description' => 'MetaDescription'
		)  
	);
 
    var $validate = array(
		'active' => array(
			'rule' => 'boolean',
			'required'   => true
		),
		'on_homepage' => array(
			'rule' => 'boolean',
			'required'   => true
		),
		'title' => array(
			'rule' => 'notEmpty',
			'required'   => true
		),
		'article' => array(
			'rule' => 'notEmpty',
			'required'   => true
		),
		'category_id' => array('numeric')
	);
 
	//The Associations below have been created with all possible keys, those that are not needed can be removed
	var $belongsTo = array(
		'Category' => array(
			'className' => 'Category',
			'foreignKey' => 'category_id'
		)
	);
}
?>
{app}/controllers/articles_controller.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
class ArticlesController extends AppController {
 
	var $name = 'Articles';
 
	var $components = array('RequestHandler');
 
	var $paginate = array(
		'limit' => 25,
		'order' => array(
			'Article.title' => 'asc'
		)
	);
 
    function index()
    {
            Configure::write('debug', 2);
            debug($this->Article->findAll());
            $this->autoRender = false;
    }
}
Lorsque j'affiche la page http://localhost/myapp/fr/articles/index/ voici ce que j'ai comme résultat
app\controllers\articles_controller.php (line 48)

Array
(
)


(default) 0 query took ms
Nr Query Error Affected Num. rows Took (ms)
Comme vous pouvez le remarquer je n'est aucune requête d'effectué.

Avez vous une idée de la cause du problème ? Ai-je oublié quelque chose ?

J'attends vos réponse rapidement (Date limite de livraison du site multilingue vendredi 09/04/2010)

En vous remerciant d'avance,
Steven