Bonjour,

J'essaie de refaire le tuto sur le raccourcissement d'url, et tout se passe bien jusqu’à la redirection. au lieu de me retrouver sur le site passé en paramètre, j'ai droit au message :

Missing method in LinksController

error : create LinksController::www.graphikart.fr() in file: app\Controller\LinksController.php.

<?php
class LinksController extends AppController {

public function www.graphikart.fr() {
}
}

Le debug de la variable me rend bien le tableau prévu dans le tuto.

J'ai revérifié les vues, le controller, tout correspond. Je ne sais pas où chercher l'erreur.

Merci par avance

6 réponses


amethyste
Réponse acceptée

Remplace

www.grafikart.fr

par

http://www.grafikart.fr
Mikachu
Réponse acceptée

Comme amethyste le précise ajoute http:// avant les www. dans ton url, normalement ca devrait etre bon

patrick29
Auteur
Réponse acceptée

Merci à tous, je serai plus attentif à l'avenir...

Bonjour patrick
je crois qu'il n'est pas très bon de mettre des points dans le nom de tes fonctions
Modifie donc

public function www.graphikart.fr() {
}

par

public function www_graphikart_fr() {
}

Bonjour,

Merci pour la réponse. Elle m'indique que je n'ai pas bien décrit mon problème.

En fait, on crée un controller qui contient une fonction view, qui doit rediriger vers le lien passé en paramètre.

public function view($id) {

            $link = $this->Link->findById($id);
            $this->redirect($link'Link']'url'], 301);
        }

Contrairement au tuto,je ne suis pas renvoyé vers le site, mais j'ai ce message d'erreur :

\app\Controller\LinksController.php (line 46)
array(
    'Link' => array(
        'id' => '9',
        'url' => 'www.grafikart.fr'
    )
)

Un debug de la variable $link me renvoie bien la valeur attendue :

<?php
class LinksController extends AppController {

    public function www.grafikart.fr() {
    }
}

Je m’aperçois qu'une fois encore j'ai mal rédigé mon message, ça devient grave ! En fait, le code sur le tuto, par la fonction view du controller LinksController, renvoie vers le site passé en paramètre. Dans mon cas, au lieu d'avoir une fenêtre qui s'ouvre avec grafikart dedans, j'ai le message d'erreur suivant, cette fois ci complètement retranscrit :

Missing Method in LinksController
Error: The action www.grafikart.fr is not defined in controller LinksController
Error: Create LinksController::www.grafikart.fr() in file: app\Controller\LinksController.php.
<?php
class LinksController extends AppController {

    public function www.grafikart.fr() {
    }
}

Donc tout se passe comme ci le controller confondait le paramètre avec une action.