[CakePHP 2.2] Vänlliga URL, hur gör man i controllern?

Permalänk

[CakePHP 2.2] Vänlliga URL, hur gör man i controllern?

Jag vill helst inte hålla på med ID'n för sidorna i min applikation, utan tar hellre en så kallad "friendly URL", exempelvis ROOT/posts/nu_borjar_det istället för ROOT/posts/1.
Problemet är dock att min view inte tycks fungera, för den säger att sidan inte finns.

I databasen har jag ett fält för URL, jag har en modell för det som fungerar fint, det är bara viewen som strular.
Här är koden jag använder, skulle någon kunna peka ut felet?

public function view($url = null) { $this->Post->url = $url; if (!$this->Post->exists()) { throw new NotFoundException("Post doesn't exist"); } if (!$url) { $this->Session->setFlash("Post doesn't exist"); $this->redirect(array('action' => 'index')); } $this->set('post', $this->Post->read()); }

Så som jag har fattat det, så skall den leta efter URL-fältet istället för ID't, vilket den gör, men den visar inte innehållet, utan säger istället att sidan inte finns.

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10

Permalänk
Medlem

Brukar det inte vara id't som kommer som argument?

Typ såhär;

public function view($id = null) { $this->Post->id = $id; /* ... */ $this->set('post', $this->Post->read()); }

Visa signatur

-- Arkade --

Permalänk
Skrivet av Arkade:

Brukar det inte vara id't som kommer som argument?

Typ såhär;

public function view($id = null) { $this->Post->id = $id; /* ... */ $this->set('post', $this->Post->read()); }

Jovisst, när man söker efter ID, men eftersom jag ville komma ifrån att ha addresser som Sidan.com/posts/1432 och istället vill ha Sidan.com/posts/fin_adress så kör jag på en autogenererad URL. Jag fick det att funka, problemet låg i min AppModel, inte i denna koden

Visa signatur

Stationär: Processor: Intel i5 3.2GHz, RAM: 4Gb, Grafikkort: ATI Radeon HD 5850, OS: Windows 7 Proffessional x64
Laptop: ASUS K53E, Processor: Intel i5 2450M, RAM: 4Gb, Grafik: Integrerad Intel GMA HD, OS: Win7 Home Premium x64 och Xubuntu 10