Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework]Router
Ikky
post
Post #1





Grupa: Zarejestrowani
Postów: 120
Pomógł: 1
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


Witam

Mam taki link:

http://www.strona.com/index/artykul/title/tytul-artykulu

co zrobic żeby link wygladal tak:

http://www.strona.com/artykul/tytul-artykulu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


  1. <?php
  2. new Zend_Controller_Router_Route(
  3.  'artykul/:tytul',
  4.  array('controller' => 'index', 'action' => 'artykul'),
  5.  array('tytul'=>'[a-z0-9_.-]+')
  6. );
  7. ?>
Go to the top of the page
+Quote Post
Ikky
post
Post #3





Grupa: Zarejestrowani
Postów: 120
Pomógł: 1
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


niestety nie działa chyba że coś źle zrobiłem

wystarczy ze wrzuce to do np:

protected function _initRoute()
{


w bootstrapie

i powinno hulać?
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Dokumentacja ZF, rozdział 12.5. Sorry, ale zabierasz się za dość skomplikowany framework, musisz nauczyć się czytać.
Go to the top of the page
+Quote Post
Ikky
post
Post #5





Grupa: Zarejestrowani
Postów: 120
Pomógł: 1
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


  1. <?php
  2. protected function _initRoute()
  3.    {
  4.        $router = $ctrl->getRouter(); // returns a rewrite router by default
  5.        $router->addRoute('artykul',new Zend_Controller_Router_Route
  6.        ('artykul/:tytul',
  7.        array('controller' => 'index','action' => 'artykul'),
  8.        array('tytul'=>'[a-z0-9_.-]+'))
  9.        );
  10.    }
  11. ?>


Fatal error: Call to a member function getRouter() on a non-object in /home/users/sobolczyk_zend/www/application/Bootstrap.php on line 25

sorry ale pracuje na zendzie od 2 godzin wiec poczatki zawsze sa trudne
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


A z obiektówką? Masz bardzo jasny komunikat. Pomyśl co to jest $ctrl i jak dobrać się do instancji Zend_Controller_Front.
Go to the top of the page
+Quote Post
Master Pain
post
Post #7





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 5.04.2007
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $front = Zend_Controller_Action::getFrontController();
  3. $router = $front->getRouter();
  4. ?>

I dalej posłużę się kodem vikinga:
  1. <?php
  2. $router->addRoute(
  3.            'artykul',
  4.            new Zend_Controller_Router_Route(
  5.                'artykul/:tytul',
  6.                 array('controller' => 'index', 'action' => 'artykul'),
  7.                 array('tytul'=>'[a-z0-9_.-]+')
  8.            )
  9.        );
  10. ?>

I tak, można go wrzucić w bootstrapie.
Go to the top of the page
+Quote Post
Ikky
post
Post #8





Grupa: Zarejestrowani
Postów: 120
Pomógł: 1
Dołączył: 5.07.2009

Ostrzeżenie: (0%)
-----


dzięki bardzo za pomoc ale jeszce mam jeden problem jak przerobić ten kod żeby mieć 2 zmienne w linku zalezy mi na czyms takim

http://www.strona.com/index/aktywacja/id/54/kod/312312312

a chce miec

http://www.strona.com/aktywacja/54/312312312

próbowałem coś takiego ale nie działało:


  1. <?php
  2. $router->addRoute('aktywacja',new Zend_Controller_Router_Route(
  3.               'aktywacja/:id/:kod',
  4.                array('controller' => 'index', 'action' => 'aktywacja'),
  5.                array('id'=>'[a-z0-9_.-]+'),
  6.                array('kod'=>'[a-z0-9_.-]+')
  7.                
  8.                )
  9.                
  10.                );
  11. ?>


Ten post edytował Ikky 7.08.2009, 11:02:14
Go to the top of the page
+Quote Post
pgrzelka
post
Post #9





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $router->addRoute('aktywacja',new Zend_Controller_Router_Route_Regex(
  3. 'aktywacja/([0-9]+)/([0-9]+)',
  4. array('controller' => 'index', 'action' => 'aktywacja'),
  5. array(1=>'id', 2=>'kod)
  6. // trzeci array jest używany do back routes czy jakoś tak ;)
  7. )
  8. );
  9. ?>


Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 23:35