Cideigniter modularitás?
Hello
Kezdő CodeIgniter használó vagyok de egy valamit nem igazán tudok megoldani.
Az alap koncepció az az hogy beírok egy url -t akkor az meghív egy controllert az meg egy nézetet. Annak átadom paraméterben a változókat amit használ. De mi van akkor ha meghívok egy controllert de az akarom több nézetet hívjon meg? Hogyan lehet olyat csinálni, hogy el vannak különítve a különböző részek. Pl van egy weboldal, van rajta hírek és login.
Akkor szeretném különválasztani a logint és a híreket, ne kelljen mindent egy nézetbe beleraknom.
Olyan megoldás kellene ami működik CI 2 -vel.





Több nézetet is be lehet hívni, szépen egymás alá fogja pakolni őket a kimenetre.
Ez érdekelt?
Hogy lehet 2 controller eredményét egy view -ra kivezetni?
A logint és a híreket két külön controller intézi.





Ja, hogy 2 külön controllert, értem.
Hmm, itt szerintem valami tervezési hiba lesz a rendszerben, mert csináltam már pár oldalt, de ilyen még soha nem kellett.
Gyorsan keresve szintén ezt találtam: "No. And that is not the way to go with MVC. You should use a Model to place the reusable functions and the call them in the Controllers that will output the data using a View."
( [link] )
Vagyis a model-be kell megírni az adatbázis hívásokat és a közös funkciókat és úgy hívni.
Például a te esetedben egy login validálást (és esetleg session beállítást) írsz egyet a model-ben, majd megírsz egy függvényt, ami lekéri az x db legfrissebb hírt.
Ekkor a controllerben ezeket 2 függvényhívással el lehet intézni.
Akkor már csak 1 kérdésem van, vegyünk egy egyszer blog ot.
Ha egy ilyen blogot akarok csinálni, beírom az urlt, meghívódik a controller, a controllernek mindent amit az oldalon látok át kell adnia a view -nek paraméterben?
Engem kicsit zavar, hogy nem lehet különválasztani az elemeket, de hát ha így működik nem baj csak fura.





A linkelt oldal egészen konkrétan egy egyedi sablonnal ellátott Wordpress. :)
Nem teljesen értem, hogy mit értesz az alatt, hogy "nem lehet különválasztani az elemeket".
Az MVC szemléletnek pont az a lényege, hogy a kinézet, a feldolgozó kódtól és az adatbázis műveletektől (na meg utóbbi kettő egymástól) teljesen elkülönüljön.
Ehhez kell átadni az adatokat a controllerből.
Ha jól értem amit akarsz, arra igen a válasz.
De ez nem valami bonyolult dolog. Ha jól csináltad az átadás kb ennyi:
$adatok['hirek'] = $this->sql->sql_legfrisebb_hirek();
$this->load->view('blogview', $adatok);
Ehhez megírod a megfelelő modelt is ami megcsinálta az x db legfrissebb hír lekérését. (Persze jó lenne ha úgy írnád meg, hogy az x-et paraméterben kapja. Így kicsit könnyebben bővíthető és "szebb".
További kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!