CodeIgniter Forums
Can a model be more than just a database layer? - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23)
+--- Thread: Can a model be more than just a database layer? (/showthread.php?tid=15014)



Can a model be more than just a database layer? - El Forum - 01-23-2009

[eluser]juddmuir[/eluser]
I've hit a problem using models and attempting to update the database.

If your model is more than just a representation of a database table, then you may have variables in your model that do not exist in the database. So when you come to e.g. update the database using

function update_entry()
{
$this->db->update('entries', $this, array('id' => $this->id));
}

an error is generated if you have a variable that doesn't map to a field. Is the solution to generate TWO objects: one that is the model that you're using, and the other that is the data-model to pass to the db->update function?


Can a model be more than just a database layer? - El Forum - 01-23-2009

[eluser]GSV Sleeper Service[/eluser]
if you want to use an object with db->update, then yes, you will have to make a separate object. from what I understand, codeigniter models are intended to be used as a place to keep your i/o stuff, you're trying to use them almost like an ORM.

you might want to take a look at Doctrine - http://www.doctrine-project.org/ , which can automatically create objects that match your DB.