Grido – rawurlencode array problém
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Desttro
- Člen | 126
Zdravím,
mám problém s gridem, když chci checkboxy označit více položek a přes
selectbox potom najednou smazat.
**Warning
rawurlencode() expects parameter 1 to be string, array given **
Laděnka: http://uoerebor.cz/error.html
V BasePresenteru chci udělat redirect:
$this->redirect($operation, array('id' => $id));
nechce mi to ale vzít pole s ID, nevíte kde by mohl být problém?
Děkuji
- Desttro
- Člen | 126
kzk_cz napsal(a):
Máš to tam napsané. $operation je array a musí být string!
No tomu rozumím, ale v grido-sandboxu to funguje
/**
* Common handler for grid operations.
* @param string $operation
* @param array $id
*/
public function handleOperations($operation, $id)
{
if ($id) {
$row = implode(', ', $id);
$this->flashMessage("Process operation '$operation' for row with id: $row...", 'info');
} else {
$this->flashMessage('No rows selected.', 'error');
}
$this->redirect($operation, array('id' => $id));
}
je to přímo z githubu: https://github.com/…resenter.php
druhý parametr má být pole: * @param array $id
- Desttro
- Člen | 126
Moc se v routech nevyznám, můj je takový:
namespace App;
use Nette,
Nette\Application\Routers\RouteList,
Nette\Application\Routers\Route,
Nette\Application\Routers\SimpleRouter;
/**
* Router factory.
*/
class RouterFactory
{
/**
* @return \Nette\Application\IRouter
*/
public static function createRouter()
{
$router = new RouteList();
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
return $router;
}
}
Z grido-sanboxu je takový:
namespace App\Routers;
use Nette\Application\Routers\RouteList;
use Nette\Application\Routers\Route;
/**
* Router factory.
*/
class RouterFactory
{
/**
* @return \Nette\Application\IRouter
*/
public static function createRouter()
{
$router = new RouteList;
$uri = self::getExtraPath();
$router[] = new Route("$uri<filterRenderType>/<presenter>/<action>/<ajax>/", array(
'filterRenderType' => 'inner',
'presenter' => 'NetteDatabase',
'action' => 'default',
'ajax' => 'on',
));
return $router;
}
public static function getExtraPath()
{
return $_SERVER['HTTP_HOST'] === 'grido.bugyik.cz'
? '/example'
: NULL;
}
}
- Desttro
- Člen | 126
Pecka, už jsem na to přišel, díky za nakopnutí! :)
zde je nový funkční router, kdyby se někdo chtěl inspirovat:
namespace App;
use Nette,
Nette\Application\Routers\RouteList,
Nette\Application\Routers\Route,
Nette\Application\Routers\SimpleRouter;
/**
* Router factory.
*/
class RouterFactory
{
/**
* @return \Nette\Application\IRouter
*/
public static function createRouter()
{
$router = new RouteList();
$router[] = new Route("<filterRenderType>/<presenter>/<action>/<ajax>/", array(
'filterRenderType' => 'inner',
'presenter' => 'Homepage',
'action' => 'default',
'ajax' => 'on',
));
return $router;
}
}