| 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: 10 let
|
|||
0