Routy podle Přednášky Honzy Smitka o routování
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- KillPrd
- Začátečník | 110
Ahojte udělal jsem si na localhostu krásnyrouty podle honzy smitka a vše
krásně funguje upravil sjem si vše co potřebuji ale jeho příklad je
dělaný na php 5.3 je možné nějak routu v bootstrampu upravit na php
5.2?
stávající routu mám takto
<?php
$katRouter = new KateogrieRoute('<id>', array(
'id' =>array(
NRoute::FILTER_OUT => function($id) use ($container){
if(!is_numeric($id)){
return $id;
}else {
$kategorie = $container->CreateKategorie();
return $kategorie->where('url',$id)->fetch()->id;
}
}
),
'presenter' => 'Kategorie',
'action' => 'default'
));
?>
- jtousek
- Člen | 951
Psáno z hlavy, může obsahovat chyby.
class Filters {
protected $container;
public function __construct($container) {
$this->container = $container;
}
public function out($id){
if(!is_numeric($id)){
return $id;
}else {
$kategorie = $this->container->CreateKategorie();
return $kategorie->where('url',$id)->fetch()->id;
}
}
}
$filters = new Filters($container);
$katRouter = new KateogrieRoute('<id>', array(
'id' =>array(
NRoute::FILTER_OUT => callback($filters, 'out'),
),
'presenter' => 'Kategorie',
'action' => 'default'
));
- KillPrd
- Začátečník | 110
Tak problém po změně ma tvuj typ:
<?php
Non-static method NConnection::table() cannot be called statically
?>
config.neon
<?php
services:
database: @\NConnection
authenticator: Authenticator( @database::table(admin) )
factories:
kategorie: @database::table(kategorie)
?>
Tak ted jsem z toho jelen :(
Pokud zruším factorie a použiji dibi
pak mi to hází hlášku se špatným callback:
<?php
call_user_func(Filters::out): First argument is expected to be a valid callback
?>
Tak vyřešeno.....
místo KategorieRoute(‚<id>‘, array.....
stačilo dát KategorieRoute(‚<url>‘, array…
Děkuji za pomoc…
Editoval KillPrd (11. 6. 2012 11:52)