Veľmi zvláštna chyba pretypovania
- Gavrilo
- Člen | 46
Ahojte,
pracujem na jednom projekte a naskytla sa mi chyba s ktorou som sa ešte nikdy nestretol a nepríde mi v celku normálna.
Funkciou si klasicky naplním latte súbor.
public function renderDetail($id)
{
...
$this->template->img = $this->documentImgManager->getAll()->where(array('document_id' => $id));
...
}
<tr n:foreach="$img as $i">
<td><a href="http://xxxx.sk/www/upload/img/{$i->name}" target="_blank">{$i->name}</a></td>
<td><a n:href="Document:DeleteImg, $i->id">aaa</a></td>
</tr>
a teraz sa dostanem k tomu zvláštnemu. Po predaní id do tejto funkcie ju nejakym spôsobom pretypuje na string … Teda vráti mi číslo ale v stringu a tým pádom mi stým model odmietne pracovať. V DB je to ako integer takže nerozumiem kde k tomu pretypovaniu mohlo dôjsť …
public function actionDeleteImg($id){
var_dump($id);
die();
$this->documentImgManager->delete($id);
$this->flashMessage('Obrázok bol vymazaní', self::SUCCESS);
$this->redirect('this');
}
- David Grudl
- Nette Core | 8239
CZechBoY napsal(a):
příp. já používám validační funkci a potom to přetypuju (mám Nette 2.3 a ještě php 5.4 tak proto).
Tam lze použít výchozí hodnotu:
public function actionDeleteImg($id = 0)
- Gavrilo
- Člen | 46
CZechBoY napsal(a):
příp. já používám validační funkci a potom to přetypuju (mám Nette 2.3 a ještě php 5.4 tak proto).
if (!\Nette\Utils\Validators::isNumericInt($id)) { throw new \Nette\Application\BadRequestException('neni integer'); } $id = (int)$id; ...
Toto mi tiež nepomôže síce to vypíše ako integer po dumpe ale funkcia
to tak neberie a hodí mi chybu .
Call to a member function delete() on boolean