redirect s polem „Array to string conversion“

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Scorpio
Člen | 45
+
0
-

Zdravím řeším takový problém. Snažím se předat informace z formuláře a tabulky. Informace jsou tvořeny polem, které může mít více možností i současně. Jde mi hlavně o to aby se při F5 neodesílal znova formulář. Ale také pomocí proměnné sort řeším sloupec a směr řazení.

<?php

public function renderList($sort = array('name'=>'a'), $search = array()){
    $sform = new Form;
    $sform->addText('partnum','Produktové číslo');
    $sform->addText('name','Název zboží');
    $sform->addSubmit('search','Hledat');
    if ($sform->isSubmitted()) {
      $val = $sform->getValues();
      foreach($val as $key=>$value){
        if(!empty($value)){
          $search[$key] = $value;
        }
      }
      $this->redirect('this',array('search'=>$search,'sort'=>$sort));
    }
  }
?>

Tento řádek mi stále vyhazuje chybu „Array to string conversion“.

<?php
$this->redirect('this',array('search'=>$search,'sort'=>$sort));
?>

Zkoušel sem to v několika verzích zápisu a chyba byla stále.

<?php
$this->redirect('this',array($search,$sort));
$this->redirect('this',$search,$sort);
?>

Editoval Scorpio (1. 9. 2012 22:27)

Majkl578
Moderator | 1364
+
0
-

Verze Nette? Resp. reprodukovatelné na 2.0.5?

Scorpio
Člen | 45
+
0
-

Pardon zapomněl sem říci jedna se o 2.0.1 dle loaderu.

Majkl578
Moderator | 1364
+
0
-

Zkus aktualizovat na 2.0.5, zda problém přetrvává. Kompatibilita s 5.4 se mezi tím opravovala.

Scorpio
Člen | 45
+
0
-

Děkuju moc. Aktualizace na 2.0.5 pomohla.

<?php
  public function renderList(array $sort = array('name'=>'a'), array $search = array()){
    $products = new Suppilers;
    $this->template->suppilers = $products->suppilers;
    $sform = new Form;
    $sform->addText('partnum','Produktové číslo');
    $sform->addText('name','Název zboží');
    $sform->addSubmit('search','Hledat');
    if ($sform->isSubmitted()) {
      $val = $sform->getValues();
      foreach($val as $key=>$value){
        if(!empty($value)){
          $search[$key] = $value;
        }
      }
      $this->redirect('this',array('sort'=>$sort,'search'=>$search));
    }
  }
?>

Ještě jsem přidal deklaraci proměnných.

Editoval Scorpio (2. 9. 2012 0:46)