This is a simple example of a single ORM model, that has no relationships, but uses validation on the fields.
CREATE TABLE IF NOT EXISTS `members` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`first_name` varchar(32) NOT NULL,
`last_name` varchar(32) NOT NULL,
`email` varchar(127) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
<?php
class
Model_Member
extends
ORM
{
public
function
rules()
{
return
[
'username'
=> [
[
'not_empty'
],
[
'min_length'
, [
':value'
, 4]],
[
'max_length'
, [
':value'
, 32]],
[
'regex'
, [
':value'
,
'/^[-\pL\pN_.]++$/uD'
]],
],
'first_name'
=> [
[
'not_empty'
],
[
'min_length'
, [
':value'
, 4]],
[
'max_length'
, [
':value'
, 32]],
[
'regex'
, [
':value'
,
'/^[-\pL\pN_.]++$/uD'
]],
],
'last_name'
=> [
[
'not_empty'
],
[
'min_length'
, [
':value'
, 4]],
[
'max_length'
, [
':value'
, 32]],
[
'regex'
, [
':value'
,
'/^[-\pL\pN_.]++$/uD'
]],
],
'email'
=> [
[
'not_empty'
],
[
'min_length'
, [
':value'
, 4]],
[
'max_length'
, [
':value'
, 127]],
[
'email'
],
],
];
}
}
The array returned by ORM::rules()
will be passed to a Validation object and tested when you call ORM::save()
.
Please notice that defining the primary key "id" in the model is not necessary. Also the table name in the database is plural and the model name is singular.
<?php
class
Controller_Member
extends
Controller_Template
{
public
function
action_index()
{
/**
* Example 1
*/
// Create an instance of a model
$members
= ORM::factory(
'Member'
);
// Get all members with the first name "Peter" find_all()
// means we get all records matching the query.
$members
->where(
'first_name'
,
'='
,
'Peter'
)->find_all();
// Count records in the $members object
$members
->count_all();
/**
* Example 2
*/
// Create an instance of a model
$member
= ORM::factory(
'Member'
);
// Get a member with the user name "bongo" find() means
// we only want the first record matching the query.
$member
->where(
'username'
,
'='
,
'bongo'
)->find();
/**
* Example 3
*/
// Create an instance of a model
$member
= ORM::factory(
'Member'
);
// Do an INSERT query
$member
->username =
'bongo'
;
$member
->first_name =
'Peter'
;
$member
->last_name =
'Smith'
;
$member
->save();
/**
* Example 4
*/
// Create an instance of a model where the
// table field "id" is "1"
$member
= ORM::factory(
'Member'
, 1);
// Do an UPDATE query
$member
->username =
'bongo'
;
$member
->first_name =
'Peter'
;
$member
->last_name =
'Smith'
;
$member
->save();
}
}
$member will be a PHP object where you can access the values from the query e.g. echo $member->first_name