Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Prosty routing, Kohana
MateuszS
post 17.02.2013, 20:12:35
Post #1





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Witam, mam prosty problem z routingiem w kohanie. Ogólnie jest to dla mnie trochę czarna magia mimo ton przeczytanej dokumentacji. Mianowicie chcę stworzyć prosty routing strona.pl/login tak żeby przy przejściu na tą stronę odpalił się kontroler login.php /9 Controller_Login i akcję index), który sobie stworzyłem. Udało mi się stworzyć znacznie bardziej skomplikowane struktury routingu a z tym prostym mam problem.

To nie działa:
  1. Route::set('login', 'login')
  2. ->defaults(array(
  3. 'controller' => 'login',
  4. 'action' => 'index'
  5. ));


Próbowałem z nawiasami itd. ale nie śmigało

Ten post edytował MateuszS 17.02.2013, 20:14:27


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Evinek
post 17.02.2013, 20:26:47
Post #2





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


  1. Route::set('auth', '<action>',
  2. 'action' => '(login|logout)'
  3. ))
  4. ->defaults(array(
  5. 'controller' => 'Auth'
  6. ));


Takie coś znalazłem w dokumentacji, spróbuj może coś w ten sposób?
Dziwi mnie, że to nie działa bo raczej powinno moim zdaniem (patrząc w dokumentacje).

Może spróbuj zmienić parametr name (pierwszy w funkcji set) na coś innego?

I w ogóle jeden kontroler powinien zajmować się logowaniem jak i wylogowaniem, nie twórz osobno na logowanie bo to nie potrzebne.
Go to the top of the page
+Quote Post
MateuszS
post 17.02.2013, 20:56:01
Post #3





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


No właśnie próbowałem ten przykład i lipa. Nie działa.

login.php
  1. <?php defined('SYSPATH') or die('No direct script access.');
  2.  
  3. class Controller_Login extends Controller_Index
  4. {
  5.  
  6. public function action_index()
  7. {
  8.  
  9. }
  10.  
  11. }


i moje routingi
  1. Route::set('login', 'login')
  2. ->defaults(array(
  3. 'controller' => 'login',
  4. 'action' => 'index'
  5. ));
  6.  
  7. Route::set('auth', '<action>', array(
  8. 'action' => '(login|logout)'
  9. ))
  10. ->defaults(array(
  11. 'controller' => 'login'
  12. ));
  13.  
  14.  
  15. Route::set('default', '(<controller>(/<action>(/<id>)))')
  16. ->defaults(array(
  17. 'controller' => 'index',
  18. 'action' => 'index',
  19. ));


Może coś się konfliktuje?

Ten post edytował MateuszS 17.02.2013, 20:56:24


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
Evinek
post 17.02.2013, 21:06:11
Post #4





Grupa: Zarejestrowani
Postów: 280
Pomógł: 46
Dołączył: 23.03.2010

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


  1. Route::set('custom', 'custom')
  2. ->defaults(array(
  3. 'controller' => 'welcome',
  4. 'action' => 'index',
  5. ));


Taki przykład znalazłem, więc powinno działać.
Usuń ten drugi routing. Może .htaccess masz źle ustawione?
Spróbuj odpalić tak:
localhost/index.php/login
Jeśli nie zadziała to musisz mieć coś źle skonfigurowane.

Ogólnie powinno działać.

@EDIT:
W ogóle coś masz w login? Czy wyświetla error 404? Bo jeśli masz puste to nie dziw się, że nic nie wyświetla...

Ten post edytował Evinek 17.02.2013, 21:07:41
Go to the top of the page
+Quote Post
MateuszS
post 17.02.2013, 21:52:07
Post #5





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Owszem 404 ale właśnie nie powinno bo kontroler jest utworzony, dziedziczy po kontrolerze odpowiadającym za widok więc powinna pokazać się strona. Jak widać jest tam też mój routing newsów który działa idealnie a został stworzony analogicznie. Plik .htaccess:

Kod
# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /kohana-parys/

# Protect hidden files from being viewed
<Files .*>
    Order Deny,Allow
    Deny From All
</Files>

# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]



//edit ok dziwna rzecz się stała, zmieniłem nazwę pliku na logins.php po czym z powrotem na login.php i załapało. Tak myślałem że tu jakieś X-Files jest. Dzięki

Ten post edytował MateuszS 17.02.2013, 21:57:12


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 4.07.2025 - 04:49