prezdivka z databaze a FILTER_OUT
- Roman Kubica
- Člen | 2
Zdravim vsechny,
chtel bych se zeptat zkusenejsich, zda na tento ukol jdu dobre. Chci abych mohl pres svoje stranky zobrazit uzivatelsky profil na stranka.cz/username
Ceho jsem dosahl?
Kdyz zadam stranka.cz/username tak se mi zobrazi uzivatelsky profil
Jdu na to dobre?
je toto spravny zpusob nebo existuje nejaky jednodussi?
Co mi nefunguje?
Kdyz uzivatel klikne na profil, tak se mi zobrazi stranka.cz/profile/default/7 a
ja presne nevim jak to prevest. myslel jsem ze to co vratim ve FILTER OUT se
zobrazi misto URL to co ziskavam.
Je mozne, ze me to uplne preskoci toto pravidlo, protoze beru jen username? new Route(‚<username [a-zA-Z0–9_\-\.]+>‘
Muzete mi prosim poradit jak to opravit ci na ulohu jit jinak, popripade jednoduse popsat FILTER_OUT, protoze to moc nechapu.
$router[] = new Route('<username [a-zA-Z0-9_\-\.]+>', array(
'presenter' => 'Profile',
'action' => 'default',
'id' => array(
Route::FILTER_IN => function($username) {
$profilename = $this->database->table('users')->where(array("username" => $username))->fetch();
if ($profilename)
return $profilename->id;
else
return NULL;
},
Route::FILTER_OUT => function($id) {
if (!is_numeric($id))
{
return $id;
} else {
$profilename = $this->database->table('users')->where(array("id" => $id))->fetch();
//$alias = "alias".$this->lang;
if ($profilename)
return $profilename->username;
else
return NULL;
}
}
)
));
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
- David Matějka
- Moderator | 6445
V masce routy mas username
a ve filtru id
, musi to
byt konzistentni.
Nebo muzes pouzit globalni
filtr (trochu niz, pouze v en doc)
A nebo si vytvor vlastni router, inspirace zde