+421-911 749 104 office@jumisoft.eu

Dlhšie mi trvalo, kým som v CodeIgniteri pochopil, aký je rozdiel medzi použitím redirect() a $this->load->view(), preto som sa rozhodol, podeliť sa s tým. Veď načo objavovať teplú vodu? 😉

Otázky, ktoré som mal:

  • Prečo nevidím moje dáta vo view? Resp. prečo sa nezobrazia údaje, ktoré som nastavil?
  • Prečo sa raz používa redirect a inokedy load view? Kedy ktoré použiť?

Základné pravidlo = zmena kontextu:

  1. pri zmene odporúčam redirect (napr. prechod na novú položku menu, či v poli dát)
  2. ak nie je zmena, vtedy použite load->view (napr. re-submit formulára po chybe vstupných dát)

Ako na odovzdanie údajov:

Pri redirect-e máte v zásade 2 možnosti:

  • použiť URL parametre
redirect('client/get_client/' . $client->family_id . '/' . $client_id);
  • použiť set_flashdata
$this->session->set_flashdata('message', $this->auth->messages());
redirect(base_url(), 'refresh');

Upozornenie: Metóda set_flashdata slúži na odovzdanie informácie do nasledujúceho kontextu t.j. nie do aktuálneho,  preto NIE JE možné dostať sa k jej aktuálnemu obsahu BEZ zmeny URL, resp. refresh-nutia tej existujúcej.

Pri load view máte v zásade 1 možnosť:

$this->load->view($view, $data);

Upozornenie: Ak chcete použiť zreťazenie views, t.j. v jednom view robíte load ďalšieho (napr. header), majte na pamäti, že pole $data bude v prvom view už rozložené na jednotlivé položky. Preto NIE JE možné odovzdať ho ($data) priamo do ďalšieho view.

To je všetko 😉