Bonsoir, après avoir installer cake, j'ai essayer la création d'un blog:

j'ai commencé a faire la pagination:
1- on crée une pagination des différents article proposé, elle son numéroté de
1 à N
2- on crée a droite une autre pagination mais cette fois par des liens(on utlise $html->link , on affiche les différents catégories , et si on clique dessus on tombe sur le groupe d'article qui correspond a un thème.

j'ai réussi a faire la pagination de numérotation ( on clique sur 1|2|3 etc..)

pour essayer d'expliquer la chose, car c'est pas évident je montre ma table qui s'appelle posts

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
--
-- TABLE posts
________________
--
 
CREATE TABLE IF NOT EXISTS `posts` (
  `id` int(3) unsigned NOT NULL AUTO_INCREMENT,
  `titre` varchar(60) NOT NULL,
  `contenu` longtext NOT NULL,
  `date` datetime NOT NULL,
  `category_id` int(2) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

ici on a une clef étrangère category_id qui est lié a une table catégories,la voici

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
TABLE categories
______________
 id    titre  
  1    entreprise 
  2    article
ici c'est le script (la vu) aquel j'ai un lien qui contient la page des différent a un autre groupe d'article (si j'efface ce bout de scipt je n'ai pas d'erreur)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
		$menu = $this->requestAction
			(array ("controller"=>"Categories","action"=>"clist") );
			foreach ($menu as $m)
			{
				$m=$m['Category'];
				echo "<li>"
				.$html->link($m['titre'],
				array("controller"=>"Posts","action"=>"category",$m['id'])).'</li>';
 
 
			}
voici ce que le controleur va recupère

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
 
Array
(
    [0] => Array
        (
            [Category] => Array
                (
                    [id] => 1
                    [titre] => entreprise
                )
 
        )
 
    [1] => Array
        (
            [Category] => Array
                (
                    [id] => 2
                    [titre] => article
                )
 
        )
 
)
lorsque que je clique sur le lien ($html->link...) j'ai une erreur

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
 
Missing Method in PostsController
Error: The action category is not defined in controller PostsController
 
Error: Create PostsController::category() in file: app\controllers\posts_controller.php.
 
<?php
class PostsController extends AppController {
 
	var $name = 'Posts';
 
 
	function category() {
 
	}
 
}
?>
 
Notice: If you want to customize this error message, create app\views\errors\missing_action.ctp.
lorsque je survole le lien j'ai bien afficher:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
http://localhost/cakephp/Posts/category/1 (ou bien 2 pour l'autre lien)
donc je suppose que la vu envoie bien les informations necessaires
a la fin du tuto il est indiquée:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
* Edit :  Lorsque vous changez de page dans une catégorie le système "bug". En effet, j'ai oublié de préciser à paginator qu'il devait faire passer l'id de la catégorie en paramètre. Pour régler le souci il faut ajouter dans la vue avant la première utilisation de paginator :
$paginator->options(array('url' => $this->passedArgs));
d'après ce que j'ai compris il faut mettre ce bout de scipt avant de faire un $paginator, je l'ai donc ajouté:
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
 
			<div id="map">
				<?php
				 $paginator->options(array('url' => $this->passedArgs)); 
					echo $paginator->numbers();
					foreach($resultat as $a):
						echo '<div>'.$html->image('/structure/image/logo.png').'<p><span>'.$a["Post"]
						["titre"].'</span></p></div>';
						echo '<br/><span>'.
							date("d/m/y",strtotime($a['Post']['date'])).'::'.$a['Category']['titre']
						.'</span>';
						echo '<p>'.$a["Post"]["contenu"].'</p>';
					endforeach
				?>
			</div>
ici c'est le bout de scipt(en amont) de la même vu (le bout de script ou on clique sur le lien)

je donne les 2 modèles je suis sous ph5
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
class Category extends AppModel {
 
}
?>
_____________________________
 
<?php
class Post extends AppModel {
	public $belongsTo='Category';
 
}
?>
avec le MCV c'est 3 fois plus difficiles a expliquer le problème on ne peut dissocier les bouts de script.

cela n'a rien changé au problème
si quelqu'un a le courage de m'aider(faut avoué que c'est super long...)

merci d'avance