Bonjour à vous
J'ai quelque problème pour la 5ème leçon de Jobeet.
J'en suis à la partie où l'on coupe les caractères inutiles dans les urls. La page principale (/job) marche parfaitement, mais dès que j'ouvre un job particulier, j'obtiens :
J'ai bien sur tenté de vider le cache de Simfony, et celui du browers, mais rien n'y fait.404 | Not Found | sfError404Exception
Action "job/SensioLabs" does not exist.
Mon jobeet.class.php est dans Jobeet\apps\frontend\lib J'ai essayé de le mettre dans Jobeet\lib, mais ça n'a rien changé. Malgré tout, je doute fortement de l'endroit exacte où il faut le mettre. Son code est :
Le code de rooting.yml est :
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 <?php //lib/Jobeet.class.php class Jobeet { static public function slugify($text) { // replace all non letters or digits by - $text = preg_replace('/\W+/', '-', $text); // trim and lowercase $text = strtolower(trim($text, '-')); return $text; } }
et celui de jobeetjob.php :
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 # default rules homepage: url: / param: { module: job, action: index } default_index: url: /:module param: { action: index } default: url: /:module/:action/* job_show_user: url: /job/:company_slug/:location_slug/:id/:position_slug class: sfPropelRoute options: { model: JobeetJob, type: object } param: { module: job, action: show }
enfin, mon indexSuccess.php ressemble à :
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 <?php class JobeetJob extends BaseJobeetJob { public function __toString() { return sprintf('%s at %s (%s)', $this->getPosition(), $this->getCompany(), $this->getLocation()); } public function getCompanySlug() { return Jobeet::slugify($this->getCompany()); } public function getPositionSlug() { return Jobeet::slugify($this->getPosition()); } public function getLocationSlug() { return Jobeet::slugify($this->getLocation()); } }
Je ne vois franchement pas d'où vient le problème. Ça doit être, forcement, une connerie, mais elle m'échappe.
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 <!-- apps/frontend/modules/job/templates/indexSuccess.php --> <?php use_stylesheet('jobs.css') ?> <div id="jobs"> <table class="jobs"> <?php foreach ($jobeet_job_list as $i => $job): ?> <tr class="<?php echo fmod($i, 2) ? 'even' : 'odd' ?>"> <td class="location"><?php echo $job->getLocation() ?></td> <td class="position"> <a href="<?php echo url_for('job_show_user', $job) ?>"> <?php echo $job->getPosition() ?> </a> </td> <td class="company"><?php echo $job->getCompany() ?></td> </tr> <?php endforeach; ?> </table> </div>
Je vous remercie d'avance pour votre aide.
FD00
[EDIT et soluce]
J'ai résolu le problème, qui était en amont de la partie slugify : il fallait que dans le routing.yml, la partie "job_show_user" soit en toute première. Aucune idée du pourquoi du comment, mais ça marche.
Partager