Nette Values is out of Allowed Range

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

Zdravím, mám takový problém, potřeboval jsem kvůli formuláři použít nasext dependent select box, vše mi funguje až na to, že když jsou v option value čárky, takže například text: „Praha 1, Dlouhá“, tak mi to vyhodí error , že Praha 1 is out of allowed range. Vystopoval jsem chybu k třídě ChoiceControl a konkrétně k této metodě: Každopádně ty values tam už chodí oříznutý a já vůbec nevím kde může být problém. Jsem začátečník, tak kdyby mi někdo poradil, byl bych rád. Díky

	public function setValue($value)
	{
		if ($this->checkAllowedValues && $value !== NULL && !array_key_exists((string) $value, $this->items)) {
			$set = Nette\Utils\Strings::truncate(implode(', ', array_map(function ($s) { return var_export($s, TRUE); }, array_keys($this->items))), 70, '...');
			throw new Nette\InvalidArgumentException("Value '$value' is out of allowed set [$set] in field '{$this->name}'.");
		}
		$this->value = $value === NULL ? NULL : key([(string) $value => NULL]);
		return $this;
	}
Oli
Člen | 1215
+
0
-

Je to tím, že nette kontroluje, jestli jsou stejná data před i po odeslání formuláře. Je to z bezpečnostních důvodů. Někde jsi to možná nepoužil správně, ale tu knihovnu neznám, takže nevím :)

MiamiB
Člen | 4
+
0
-

To já chápu, ale jak píšu výše. Jde o to, že mi ten dependent select box a všechno funguje jakmile není v textu z DB čárka, když tam je, tak se to pak osekává. A z Praha 1, Dlouhá to osekne na Praha 1 a samozřejmě to neprojde touhle validací.

Oli
Člen | 1215
+
0
-

Jen jsem to v rychlosti prolítl, ale zkus se zaměřit na tyhle řádky: https://github.com/…electBox.php#…. Používá se tam implode podle čárky a to by mohl být ten problém…

MiamiB
Člen | 4
+
0
-

Na to jsem také narazil. Ten implode však je asi jen proto, aby to mohl vypsat do té chybové hlášky v laděnce. Podle mě bude něco špatně v těch hodnotách co jde do podmínky, asi právě ten array_diff a tudíž to projde a vyhodí to exception. Každopádně to jsem asi stejně jako na začátku. Takže to bude asi tím, co je nad tou podmínkou v dané metodě. Ale díky

MiamiB
Člen | 4
+
0
-

Tak se omlouvám za vše, zjistil jsem, že jsem dementní. Díky moc :)

Editoval MiamiB (10. 1. 2017 14:08)