Autor | Zpráva | ||
---|---|---|---|
jefitto44 Profil |
Takto to u mňa vyzerá
MODEL public function getHomeSite() { $data = $this->db->get_where("page", array("page_id" => 1)); foreach($data->result() as $item) { $return["page_id"] = $item->page_id; $return["title"] = $item->title; $return["content"] = $item->content; $return["datetime"] = $item->datetime; $return["user_id"] = $item->user_id; } return $return; } public function index() { $data = $this->model->getHomeSite(); $this->load->view("layouts/head"); $this->load->view('welcome_view', $data); } <div class="main col-md-8"> <?php echo $data->title ?> </div><!--main--> Premenná $data je vo view ako "undefined variable" a už dve hodiny sa trápim prečo, resp. ako prepasírovať data z premennej v controlleri do view-u... robím to podľa návodov v dokumentácií a stack overflow, ale nefunguje mi nič :( Short open tags mam aktivovane respektíve ešte som skúšal vo view aj <? var_dump($data) ?> a furt undefined variable |
||
xROAL Profil |
Je to už nejaký čas, čo som robil s CI, no ak si správne pamätám, premenné sa do
view predávajú ako pole.
V tvojom prípade je $data samé o sebe pole, vo view teda budú pravdepodobne dostupné len jeho prvky (teda $page_id , $title , atď.).
Ak ku tomu vo view chceš pristupovať ako k poli, skús $this->load->view('welcome_view', array($data)); .
Edit: <?php echo $data->title ?> takto sa nepristupuje k prvkom poľa, alebo k atribútom objektu. Použi $data['title'] , prípadne do view predávaj objekt, ak chceš túto syntax zachovať.
|
||
jefitto44 Profil |
#3 · Zasláno: 5. 2. 2016, 06:36:05
Zrejme rozumiem, čo píšeš, ale najskôr to budem môcť vyskúšať v nedeľu večer, keĎže dovtedy som away from my PC. Každopádne budem na to pamätať
|
||
petr Profil * |
#4 · Zasláno: 5. 2. 2016, 06:42:51
1) ten model si musíte v controlleru předem načíst (pokud ho nemáte v autoloadu)
2) a k modelu se pak přistupuje přes jeho název: class Blog_controller extends CI_Controller { function blog() { $this->load->model('Blog'); $data['query'] = $this->Blog->get_last_ten_entries(); $this->load->view('blog', $data); } } $this->load->model('Model_name', '', TRUE);
viz ellislab.com/codeigniter/user-guide/general/models.html |
||
jefitto44 Profil |
#5 · Zasláno: 5. 2. 2016, 08:48:33
Petr, mám to presne tak... model je v autoloade, lebo v celom controlleri ho budem využívať vo všetkých metódach, tak aby som ho nemusel furt volať v každej metóde.
K modelu prístup mám, všetko mi funguje, iba vo view sa neviem dostať k premenným... Tie $data v controlleri musia byť ako array() ? |
||
xROAL Profil |
#6 · Zasláno: 5. 2. 2016, 10:14:19
jefitto44:
„Tie $data v controlleri musia byť ako array() ?“ Predávanie dynamických dát do view - www.codeigniter.com/.../views.html#adding-dynamic-data-to-the-view V controlleri: $data = array( 'title' => 'Môj nadpis', 'id' => 1 ); $this->load->view('view', $data); Vo view: <?= $title ?> vypíše Môj nadpis .
<?= $id ?> vypíše 1 .
Samotné $data však vo view neexistuje.
|
||
jefitto44 Profil |
#7 · Zasláno: 5. 2. 2016, 12:53:14
jaj tak, toto som potreboval vedieť.
|
||
Kcko Profil |
#8 · Zasláno: 5. 2. 2016, 19:04:11
jefitto44:
Tak se podívej do dokumentace www.codeigniter.com/user_guide/general/views.html |
||
Časová prodleva: 8 let
|
0