Using DooModel for Database Operations
If you have ever read DooPHP guide on model, you will see that a basic Model class does not have to extend any superclass.
A basic Model class looks like this:
class User{
public $id;
public $uname;
public $pwd;
public $group;
public $vip;
public $_table = 'user';
public $_primarykey = 'id';
public $_fields = array('id', 'uname', 'pwd', 'group', 'vip');
}
With the basic Model class, you can search for a database record by:
//$this->db()->find('User'); is the same
Doo::db()->find('User');
//search for one record
Doo::db()->find('User', array('limit'=>1) );
//search for a user named 'david'
Doo::db()->find('User', array('where'=>"uname='david'", 'limit'=>1) );
//using prepared statement to avoid sql injection
Doo::db()->find('User', array(
'where' => 'user=?',
'param' => array($_GET['name']),
'limit' => 1
)
);
//Or simply use this for shorter code.
Doo::loadModel('User');
$u = new User;
$u->uname = $_GET['name'];
$result = Doo::db()->find($u, array('limit'=>1));
Although the above code is pretty straightforward, we can make it even shorter and cleaner. First of all, we would need to have our Models to extend the DooModel class. We will have our Model class as the code below, notice the constructor:
Doo::loadCore('db/DooModel');
class User extends DooModel {
public $id;
public $uname;
public $pwd;
public $group;
public $vip;
public $_table = 'user';
public $_primarykey = 'id';
public $_fields = array('id', 'uname', 'pwd', 'group', 'vip');
function __construct(){
parent::$className = __CLASS__;
}
}
By
More »
