Orm

Basic Usage

Load a new model instance

To create a new Model_User instance, you can do one of two things:

$user = ORM::factory('User');
// Or
$user = new Model_User();

Inserting

To insert a new record into the database, create a new instance of the model:

$user = ORM::factory('User');

Then, assign values for each of the properties;

$user->first_name = 'Trent';
$user->last_name = 'Reznor';
$user->city = 'Mercer';
$user->state = 'PA';

Insert the new record into the database by running [ORM::save]:

$user->save();

[ORM::save] checks to see if a value is set for the primary key (id by default). If the primary key is set, then ORM will execute an UPDATE otherwise it will execute an INSERT.

Finding an object

To find an object you can call the [ORM::find] method or pass the id into the ORM constructor:

// Find user with ID 20
$user = ORM::factory('User')
	->where('id', '=', 20)
	->find();
// Or
$user = ORM::factory('User', 20);

Check that ORM loaded a record

Use the [ORM::loaded] method to check that ORM successfully loaded a record.

if ($user->loaded())
{
	// Load was successful
}
else
{
	// Error
}

Updating and Saving

Once an ORM model has been loaded, you can modify a model’s properties like this:

$user->first_name = "Trent";
$user->last_name = "Reznor";

And if you want to save the changes you just made back to the database, just run a save() call like this:

$user->save();

Deleting

To delete an object, you can call the [ORM::delete] method on a loaded ORM model.

$user = ORM::factory('User', 20);
$user->delete();

Mass assignment

To set multiple values at once, use [ORM::values]

try
{
	$user = ORM::factory('user')
		->values($this->request->post(), array('username','password'))
		->create();
}
catch (ORM_Validation_Exception $e)
{
	// Handle validation errors ...
}

[!!] Although the second argument is optional, it is highly recommended to specify the list of columns you expect to change. Not doing so will leave your code vulnerable in case the attacker adds fields you didn’t expect.

Do you want to contribute to Koseven?

We need YOUR help!

This project is open source. What does this mean? YOU can help:
  • Found a bug? Report it on Github
  • Need a feature? Add it Here
  • Want to help? Join the Forum
Go to Github