Jak předat parametr ze šablony do druhé
- safik
- Člen | 11
Zdravím, můj problém spočívá v tom, že mám dejme tomu seznam chatovacích místností a při kliknutí na místnost se místnost otevře a načtou se již uložené příspěvky. Takže potřebuju předat id_room a ve druhé šabloně pomocí tohoto id získat data. zkoušel jsem to podobně jako s formulářem, kdy v modelu bylo
public function getRoom($id_room) {
$stmt=$this->db->query("select * from rooms where id_rooms=?",$id_room);
return $stmt->fetch();
}
public function actionRoom($id_room){
$this->data=$this->getModel()->getRoom($id_room);
}
<td><a n:href="Chat:Room, rooms => id_rooms">Vstoupit</a></td>
ale to byla blbost, protože jsem se pak k tem datům nedostal. Doufám, že jsem to podal srozumitelně dík za případné rady.
- Mysteria
- Člen | 797
Myslíš něco jako tohle?
public function actionRoomList() {
$this->template->rooms = $this->model->getAllRooms();
}
public function actionRoomDetail($roomID) {
$this->template->room = $this->model->getRoom($roomID);
}
{foreach $rooms as $room}
Místnost {$room->name} - <a n:href='roomDetail $room->id'>Vstoupit</a>
{/foreach}
Vítejte v místnosti {$room->name}.
<!-- Výpis příspěvků... -->
- safik
- Člen | 11
to ani nevim kde zjistit :) v modelu mam
public function __construct($db) {
$this->db=$db;
}
a v presenteru
private function getModel(){
if(!isset($this->model)){
$this->model=new \App\Model\ChatModel($this->context->getService("database"));
}
return $this->model;
}
jestli je to ono
- Mysteria
- Člen | 797
Ale fuj. Tohle se hodně rychle odnauč, v Nette se toto řeší mnohem lépe. :)
Rychlokurz vytvoření modelu, který pracuje s databází a jeho „zpřístupnění“ v presenteru najdeš zde: https://forum.nette.org/…senterom-atd#…
Případně doporučuju přečíst celé téma, je tam rozebráno proč je tvoje metoda výše uvedená špatně. :)
EDIT: Podle toho bys to měl být schopný dát dokupy, pokud ne, tak napiš v čem je problém a nějak to dáme pořádně dokupy. :)
Editoval Mysteria (24. 6. 2015 19:35)
- David Matějka
- Moderator | 6445
@safik chjo :(
https://www.youtube.com/watch?…
muzes jim ve skole vysvetlit, ze se to tak nedela? :)