Kohana - Łatwy link z nazwą użytkownika do profilu

0

Witam. Chcę zrobić linki do profili użytkowników w stylu "strona.pl/MonikaJakas", ale nie wiem jak to optymalnie zrobić (jak taki Route napisać). gdy dam coś takiego:

Route::set('profile', '<username>')
	->defaults(array(
		'controller' => 'user',
		'action'     => 'profile',
	));

To wydaje mi się, że normalne wywoływanie kontrolerów (podstron) będzie się pierniczyło.
Jak to prawidłowo zrobić? Może w tej "definicji" nowego Route, sprawdzać (filtr) czy istnieje taka klasa z kontrolerem o nazwie "<username>" - jeśli tak to zwracać FALSE by przeszło do kolejnego routa?

1

Ja nie wiem czy podejście typu: strona.pl/uzytkownik jest właściwe, może lepiej zastosować: strona.pl/user/uzytkownik ?

 
Route::set('profile', 'user/<username>')
    ->defaults(array(
        'controller' => 'user',
        'action'     => 'profile',
));

Kohana ma domyślną trasę (kontroler welcome jest przykładowy):

 
Route::set('default', '(<controller>(/<action>(/<id>)))')
    ->defaults(array(
        'controller' => 'welcome',
        'action'     => 'index',
));

Zakładam tu że chcesz zdefiniować tą swoją trasę przed tą domyślną bo inaczej nie zadziała. W przypadku gdyby był np. jakiś kontroler o nazwie admin który by do czego innego służył a tu profil by był też o takiej nazwie by było coś takiego jak: strona.pl/admin to by były problemy (kłóci się z kontroler: admin, akcja: index).

Można by dać kontroler user, akcja profile i coś takiego:

 
class Controller_User extends Controller_Template
{

    public function action_profile()
    {
        $username = $this->request->param('username');
        //dalsze instrukcje
    }
}

działający dla tej trasy profile a nie default.

0

wiem wiem wiem, ale klient dał zlecenie i napisał, że chce takie coś :) Napiszę mu, że będzie problem z tym i zrobie rzeczywiście "profile/<username>"

1 użytkowników online, w tym zalogowanych: 0, gości: 1