This is a simple example of a single ORM model, that has no relationships, but uses validation on the fields.
SQL schema
CREATE TABLE IF NOT EXISTS `members` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(32) NOT NULL,
`firstname` varchar(32) NOT NULL,
`lastname` varchar(32) NOT NULL,
`email` varchar(127) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Model
<?php defined(
'SYSPATH'
)
or
die
(
'No direct access allowed.'
);
class
Model_Member
extends
ORM {
protected
$_rules
=
array
(
'username'
=>
array
(
'not_empty'
=> NULL,
'min_length'
=>
array
(4),
'max_length'
=>
array
(32),
'regex'
=>
array
(
'/^[-\pL\pN_.]++$/uD'
),
),
'firstname'
=>
array
(
'not_empty'
=> NULL,
'min_length'
=>
array
(4),
'max_length'
=>
array
(32),
'regex'
=>
array
(
'/^[-\pL\pN_.]++$/uD'
),
),
'lastname'
=>
array
(
'not_empty'
=> NULL,
'min_length'
=>
array
(4),
'max_length'
=>
array
(32),
'regex'
=>
array
(
'/^[-\pL\pN_.]++$/uD'
),
),
'email'
=>
array
(
'not_empty'
=> NULL,
'min_length'
=>
array
(4),
'max_length'
=>
array
(127),
'email'
=> NULL,
),
);
}
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.
Controller
<?php defined(
'SYSPATH'
)
or
die
(
'No direct access allowed.'
);
class
Controller_Member
extends
Controller_Template {
public
function
action_index()
{
// -------------
// - Example 1 -
// -------------
// Create an instance of a model
$member
= ORM::factory(
'member'
);
// Get all members with the First name "Peter" find_all()
// means we get all records matching the query.
$member
->where(
'firstname'
,
'='
,
'Peter'
)->find_all();
// Count records in the $member object
$member
->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 a INSERT query
$member
->username =
'bongo'
;
$member
->firstname =
'Peter'
;
$member
->lastname =
'Smith'
;
$member
->save();
// -------------
// - Example 4 -
// -------------
// Create an instance of a model where the
// table field "id" is "1"
$member
= ORM::factory(
'member'
, 1);
// You can create the instance like below
// If you do not want to use the "id" field
$member
= ORM::factory(
'member'
)->where(
'username'
,
'='
,
'bongo'
)->find();
// Do a UPDATE query
$member
->username =
'bongo'
;
$member
->firstname =
'Peter'
;
$member
->lastname =
'Smith'
;
$member
->save();
}
}
$member will be a PHP object where you can access the values from the query e.g. echo $member->firstname
8 comments:
nice! simple and clear! thanks!
indeed. very, very good.
how to show with view?(orm find_all)
nice blog for digital marketing and same information click here Best SMO | PPC Expert Indore
Great post.
https://www.domoticz.com/forum/memberlist.php?mode=viewprofile&u=29851
EN SON ÇIKAN PERDE MODELLERİ
numara onay
mobil ödeme bozdurma
Nft nasil alınır
ankara evden eve nakliyat
TRAFİK SİGORTASİ
dedektör
Kurma web sitesi
aşk kitapları
Post a Comment