Hello Világ Model és Controller
A post-ban elkészítjük az első Model és Controller alap programunkat, amiben adatbázisból fogunk adatokat lekérni.A lekérésnek 2 módját mutatom be, az egyik a CodeIgniter Active Record-jával történik, a másik egyszerű kérés használatával.
A cikkhez tartozik egy cimke táblát és teszt adatokat tartalomzó sql fájl, amit letöltés után futtassunk az adatbázis kapcsolat résznél leírát install_test adatbázisunkon.
A CodeIgniter adatbázis abstrakciós rétege, rendkívül egyszerűen használható és nagyon jó dokumentációval rendelkezik. Ha letöltötted a keretrendszert akkor a dokmentációkbana database Class menüponton részletes példákkal illusztrálja egy-egy utasítás működését, és szinte az összes felmerülő SQL-el kapcsolatos kérdésünkre megtaláljuk benne a választ.
A cimke controller létrehozása:
Hozz létre egy PHP fájlt a system/application/controllers mappában cimke.php néven. A fájl neve mindig az osztály neve legyen jelen esetbena cimke. Figyeld meg a controller lérehozásakor milyen metódusokat használok.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class cimke extends Controller { function cimke(){ parent::Controller(); } //az index metódus fut le, ha nincs egyéb kérés function index(){ //model betöltése a models mappából //lehet mappába is akkor elé kell tenni cimke/cimke_model $this->load->model("cimke_model"); //adatok lekérése $acitve_record=$this->cimke_model->active_record_osszes_cimke(); $this->_p($acitve_record, "active record lekérés"); //select * .. $egyszeru_keres=$this->cimke_model->egyszeru_keres(); $this->_p($egyszeru_keres, "egyszerű kérésel"); } function _p($array, $title){ echo "<pre><h1>{$title}</h1>"; var_dump($array); echo "<hr>"; echo "</pre>"; } } /* End of file cimke.php */ /* Location: ./system/application/controllers/cimke.php */
A model létrehozása:
A modelt a system/application/models mappába kell elhelyezni jelen esetben cimke_model.php néven. Ahhoz hogy használhasd a kontrollerben az adott modelt be kell tölteni. Ehhez nézd meg a conroller-ben a ezt az utasítást:
$this->load->model("cimke_model");
Ezzel töltöm be használatra a modelt, de persze be lehet tölteni egyéb módon is. Fontos hogy ilyenkor és függvény híváskor is mindig kisbetűvel hivatkozunk rá.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * @property CI_Loader $load * @property CI_Form_validation $form_validation * @property CI_Input $input * @property CI_Email $email * @property CI_DB_active_record $db * @property CI_DB_forge $dbforge * @property CI_Table $table * @property CI_Session $session * @property CI_FTP $ftp * @property CI_Table $table * @property CI_Validation $validation * @property CI_Pagination $pagination */ class Cimke_model extends Model{ function Cimke_model(){ parent::Model(); } //active record használatával minden adat function active_record_osszes_cimke(){ //SELECT * FROM cimke; $query=$this->db->get("cimke"); //megvizsgáljuk vannek-e sorok ha nincs akkor szia if(!$query->num_rows){ return false; } //feldolgozzuk tömb formályában a kérést és visszadjuk a $lista-ban $lista=array();$row=$lista; foreach ($query->result_array() as $row){ $lista[]=$row; } return $lista; } //használhatunk kéréseket is ha ahhoz van kedvünk function egyszeru_keres(){ $sql="SELECT * FROM `cimke`"; $query=$this->db->query($sql); if(!$query->num_rows){ return false; } $lista=array();$row=$lista; foreach ($query->result_array() as $row){ $lista[]=$row; } return $lista; } } /* End of file cimke_model.php */ /* Location: ./system/application/models/cimke_model.php */
Ha elhelyeztük mindkét fájlt a helyére akkor hívjuk meg http://localhost/install-test/index.php/cimke oldalt. Mivel nincs megadva a controller után metódus ezért az index() fog lefutni.

A keretrendszerben használhatod az SQL kérések irogatását, ha neked az szimpatikusabb, de az Active record-os megoldás is rendelkezésedre áll. Javaslom hogy az utóbbival kössél mélyebb barátságos, mert nagyszerű dolog ha ráérzel az ízére.
Mivel a Framework rugalmas, ezért saját oszályokat is használhatsz erre a célra, annyid dolgod van, hogy az adatbázis kapcsolódáskor kapott erőforrás azonosítót átadod neki.
Letöltések
- SQL adatok a példa programhoz
- A cikkhez tartozó cimke tábla és adatok, amit az előzményekben (adatbázis kapcsolat résznél leírt táblán futtatni kell.)
- cimke controller php fájl, ezt használjuk a példában
- A példa program cimke.php controller fájlja.
- A leírás modelje
- A cimke_model.php fájlt tartalmazza.