Bonjour,
je fais actuellement le tutoriel sur cakephp (un site en 4 jours) je suis siui sur la dernière version de cakephp 1.3
Lorsque que j'édit une page (lien de la page : /admin/pages/1) la sauvegarde ne se fais pas. Je suis rediriger vers le lien suivant :admin/posts/edit/1. J'ai cherchez mais je vois pas d'ou cela peux venir sachant que pour l'instant j'ai pas créé la partie concernant les posts. vi-dessous mes deux scripts

Pages_controller.php

<?php
class PagesController extends AppController{
    public $uses = array('Post');

    /**
    * RequestAction, permet d'avoir la liste des contenus pour le menu
    *   
    **/
    function menu(){
        $pages = $this->Post->find('all',array(
            'conditions' => array('type'=>'page',
            'online'    =>1),
            'fields' => array('id','slug','name')
        ));
        return $pages;  
    }

    /**
    * Permet d('afficher une page
    *   
    **/

    function show($id=null, $slug=null){
        if(!$id)
            throw new NotFoundException('Aucune page ne corespond à cet ID');
        $page = $this->Post->find('first', array(
            'conditions' => array('id'=>$id)
        ));
        if(empty($page))
            throw new NotFoundException('Aucune page ne corespond à cet ID');
        if($slug != $page'Post']'slug'])
            $this->redirect($page'Post']'link'],301);
            $d'page'] = current($page);
            $this->set($d);         
    }
    /**
    * 
    *   
    **/
    function admin_index(){
        $d'pages'] = $this->Paginate('Post',array('type'=>'page'));
        $this->set($d);
    }
    function admin_edit($id = null){
        if(!empty($this->data) || $this->data){
            if($this->Post->save($this->data)){
                $this->Session->setFlash("le contenu a bien été modifié",'notif');
                $this->redirect($this->referer());

            }
        }elseif($id){
        $this->Post->id = $id;
        $this->data = $this->Post->read();  
        }
    }
    function admin_delete($id){
        $this->Session->setFlash('Votre page a bien été supprimer','notif');
        $this->Post->delete($id);
        $this->redirect($this->referer());

    }

}

ma pages : admin_edit.php

<div class="page-header">
    <h1>Editer une page</h1>
<?php echo $this->Form->create('Post');?>
    <?php echo $this->Form->input('name',array('label'=>'Titre'));?>
    <?php echo $this->Form->input('slug',array('label'=>'URL'));?>
    <?php echo $this->Form->input('type',array('value'=>'page','type'=>'hidden')); ?>
    <?php echo $this->Form->input('id'); ?>
    <?php echo $this->Form->input('content',array('label'=>'Contenu'));?>
    <?php echo $this->Form->input('online',array('label'=>'En ligne ?'));?>
<?php echo $this->Form->end('Envoyer');?>
</div>

Par contre j'ai retiré request dans la partie admin_edit car il n'est pas reconnu dans cette version.

concernant la suppression des pages ca fonctionne correctement

Je vous remerci de votre aide

cafreunion

2 réponses


cafreunion
Auteur
Réponse acceptée

Bonsoir,

J'avais installé la mauvaise version (j'ai installé la version 1.3 au lieu de 2.1) maintenant tout est ok

Merci
Cafreunion

Pourquoi ne passes tu pas par la dernière version de cakePHP, tu aurais comme cela plus de compatibilité ?