Bonjour à tous,
J'ai un souci avec cakephp et je cherche la solution depuis une semaine.
Dans mon projet, après avoir ajouter ou éditer un article, je voudrais rediriger vers la page d'accueil du site.
Au début de mon développement tout fonctionnait sans problème et depuis une semaine (sans avoir modifier l'application) la ligne "$this->redirect(array('controller'=>'pages','action'=>'home'));" m'affiche une page blanche en gardant l'url de la page d'édition.
Les éléments sont bien enregistrés dans la base, ce qui me fait dire que c'est la redirection qui ne fonctionne pas.
J'ai essayé d'envoyer sur une url externe "connue' (à savoir google) mais ça ne marche pas non plus.
Franchement je ne vois pas de quoi ça peut venir.
J'ai essayé de réinstaller cakephp sans résultat.
Un point qui a peut-être son importance, juste après l'instal, Cake me dit que l'url rewrite ne fonctionne pas. est-ce que ça peut avoir un lien ? En sachant que j'ai rien modifier sur mon serveur apache
Config : MAC , serveur MAMP, essais sur navigateurs Safari et chrome
désolé si mes questions sont un peu bêtes mais là je nage.
voici le code de ma fonction :
public function edit($id = null){
$c = $this->Recette->Category->find('list',array(
'recursive'=>-1,
'fields'=>array('id','name')
)
);
$this->set('categ',$c);
if($this->request->is('put') || $this->request->is('post')){
$this->Recette->set($this->request->data);
if($this->Recette->save()){
$this->Session->setFlash('La recette a bien été mise à jour.');
$this->redirect(array('controller'=>'pages','action'=>'home'));
}
}
if($id){
$this->Recette->id = $id;
$this->request->data = $this->Recette->read();
}
}
Pour info, ce n'est pas mon code d'origine mais une copie d'un message du forum. Une personne avait le même problème que moi. Malheureusement chez moi ça ne fonctionne pas mieux
Dernière chose, quand je tape manuellement l'adresse http://localhost:8888/Monsite/pages/home, ma page d'accueil s'affiche correctement.
Essai:
$this->redirect(array('controller'=>'pages','action'=>'display', 'home'));
ou sinon directement:
$this->redirect('/');
Et il faut activer le mod_rewrite sur le serveur, a voir selon ton hébergeur.
Merci pour ta réponse, mais malheureusement ça ne fonctionne pas.
ce que je n'arrive pas à comprendre c'est que les règles de réécriture doivent fonctionner parce que lorsque j'accède au dossier d'installation de Cake il me redirige bien vers la page qui correspond à : Controller=>Pages, action=>home. En gros le truc par défaut de Cake.
Oui c'est bon
J'ai aussi modifié le fichier httpd.conf comme indiqué sur le site de Cake
Huum la j'avoue que je sais pas trop, a tu modifier le controller pages ?
Et montre moi ton fichier route.php
J'utilise aussi MAMP et j'ai eu le même problème il y a peu de temps.
Par contre tout est rentrer dans l'ordre et je ne sais pas pourquoi ... désolé de ne pas pouvoir t'aider.
voici mon fichier route.php :
<?php
/**
* Routes configuration
*
* In this file, you set up routes to your controllers and their actions.
* Routes are very important mechanism that allows you to freely connect
* different urls to chosen controllers and their actions (functions).
*
* PHP 5
*
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org)
* Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
*
* Licensed under The MIT License
* Redistributions of files must retain the above copyright notice.
*
* @copyright Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
* @link http://cakephp.org CakePHP(tm) Project
* @package app.Config
* @since CakePHP(tm) v 0.2.9
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
/**
* Here, we are connecting '/' (base path) to controller called 'Pages',
* its action called 'display', and we pass a param to select the view file
* to use (in this case, /app/View/Pages/home.ctp)...
*/
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
/**
* ...and connect the rest of 'Pages' controller's urls.
*/
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
/**
* Load all plugin routes. See the CakePlugin documentation on
* how to customize the loading of plugin routes.
*/
CakePlugin::routes();
/**
* Load the CakePHP default routes. Remove this if you do not want to use
* the built-in default routes.
*/
require CAKE . 'Config' . DS . 'routes.php';
Le controller Pages est rester d'origine (comme le fichier routes)
J'ai essayé aussi de réinstaller MAMP, pas mieux ....
Help !!!
Essai de faire une installation vierge de cakephp et de ne rien modifier et voir si tu arrive a accéder a la page.
Sinon je ne peut pas être d'une plus grande aide car je voie pas d'ou sa peut venir