IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

Transmission de variable avec $this->passedArgs


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut Transmission de variable avec $this->passedArgs
    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

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 69
    Points : 67
    Points
    67
    Par défaut
    Salut, j'ai jamais fait de pagination alors je n'ai que survolé ton code...

    As tu suivi la méthode donnée dans le cookbook de cakephp?

    http://book.cakephp.org/view/164/Pagination

    On y lit notamment qu'il faut déclarer une variable paginate dans le controller:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    class RecipesController extends AppController {
     
        var $paginate = array(
            'fields' => array('Post.id', 'Post.created'),
            'limit' => 25,        
            'order' => array(
                'Post.title' => 'asc'
            )
        );
    }
    La suite est dans le lien, essaie de voir ce que tu peux y faire en suivant leur méthode ça pourrait marcher (je ne te garantie rien j'ai pas testé )

    EDIT
    j'avais pas tilté que le message était si vieux LOL, désolé...

Discussions similaires

  1. defaut de transmission de variable avec url
    Par encours dans le forum Langage
    Réponses: 1
    Dernier message: 11/11/2011, 07h19
  2. transmission variables avec header
    Par narcis60floyjo dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2009, 15h27
  3. Localisation de fichier avec transmission de variables
    Par flashy38 dans le forum Langage
    Réponses: 1
    Dernier message: 15/11/2008, 10h20
  4. Transmission de variable avec GET et header
    Par spirou dans le forum Langage
    Réponses: 10
    Dernier message: 03/01/2006, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo