To create a new Model_User
instance, you can do one of two things:
$user = ORM::factory('User');
// Or
$user = new Model_User();
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
.
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);
Use the ORM::loaded method to check that ORM successfully loaded a record.
if ($user->loaded())
{
// Load was successful
}
else
{
// Error
}
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();
To delete an object, you can call the ORM::delete method on a loaded ORM model.
$user = ORM::factory('User', 20);
$user->delete();
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.