Nelze mi načíst obrázky relace M:N
- navi89
- Člen | 3
Dobrý den, mám problem s načítání obrázky
//vrací všechny volné pokoje.
$freeRooms = $this->reservationModel->freeRooms($this->form_vals['arriveDate'], $this->form_vals['leaveDate'])->fetchPairs('id');
$this->template->rooms = $freeRooms;
{foreach $rooms as $room}
<tr>
<td></td>
<td>
{foreach $room->related('images_rooms') as $room_image}
<a href="{$basePath}/images/rooms/{$room_image->image->url}" data-lightbox="{$room->name}" data-title="{$room->name}" >
<img src="{$basePath}/images/rooms/{$room_image->image->url}" height="40" width="80" alt="{$room->name}">
</a>
{/foreach}
</td>
<td>{$room->name}</td>
<td>{$room->price}, kč</td>
<td>{$room->content}</td>
<td>
{$form['room_id']->getControlPart($room->id)}
</td>
</tr>
{/foreach}
Tak vyhodí error Call to undefined method Nette\Database\Row::related()
Když smažu, tohle
{foreach $room->related('images_rooms') as $room_image}
<a href="{$basePath}/images/rooms/{$room_image->image->url}" data-lightbox="{$room->name}" data-title="{$room->name}" >
<img src="{$basePath}/images/rooms/{$room_image->image->url}" height="40" width="80" alt="{$room->name}">
</a>
{/foreach}
tak se zobrazí normalně, bez obrázky.
Kdybych místo
$this->template->rooms = $freeRooms;
napsal
$this->template->rooms=$this->roomModel->findAll();
Tak se mi zobrazí s obrázkama, ale ja potřebují zobrazit konkrétní obrázky, nevíte co s tím? :-(
Editoval navi89 (22. 9. 2014 13:11)
- David Matějka
- Moderator | 6445
Vypada to, ze metoda freeRooms
nepracuje s NDBT
($context->table(...)
), ale ze sestavuje dotaz nejak rucne –
pak nejde pouzit related, ref ani nic dalsiho
- navi89
- Člen | 3
matej21 napsal(a):
Vypada to, ze metoda
freeRooms
nepracuje s NDBT ($context->table(...)
), ale ze sestavuje dotaz nejak rucne – pak nejde pouzit related, ref ani nic dalsiho
Metoda vypada takhle
public function freeRooms($arrivas, $leaves)
{
$q = "SELECT * FROM rooms WHERE id NOT IN (SELECT room_id FROM reservations_rooms "
. "JOIN reservations WHERE arriveDate < '" . $leaves . "' AND departDate > '" . $arrivas . "')";
return $this->connection->query($q);
}
Obrázky mám uloženy v images,kde je alt a url.A pomocnou tabulku images_rooms, kde je ulozeny id romm a id image.
Editoval navi89 (22. 9. 2014 16:42)
- David Matějka
- Moderator | 6445
- oprav si tu sql injection – pouzij parametry
- pokud budes chtit pouzivat related, ref a dalsi vlastnosti NDBT, nebudes
moci pouzit query, ale
->table()