2013-03-08 3 views
0

кто-нибудь знают его можно преобразовать следующим образом:RedBeanPhp как создать активную запись модель

$u = R::dispense('users'); 
$u->login = $this->login; 
$u->password = $this->password; 
R::store($u); 

в этом:

class User 
{ 
    var $login; 
    var $password; 
    var $id; 

    public function save() { 
     $u = R::dispense('users'); 
     $u->login = $this->login; 
     $u->password = $this->password; 
     $this->id = R::store($u); 
    } 
} 

$u = new User(); 
$u->login = 'login'; 
$u->password = 'pass'; 
$u->save(); 

, но без использования кода при сохранении некоторых вещей, как это

public function save() { 
    R::store($this); 
} 

Мне очень надоело переписывать заявления, такие как $ u-> login = $ this-> login;

большое спасибо

ответ

6

Вы должны создать модель пользователи, расширяющий простую модель Redbean как так:

class Model_users extends \RedBean_SimpleModel 
{ 
    private $_login = 'My default login name'; 
    private $_password = 'My default not so secret password'; 

    // The following method is executed right before an insert or update 
    function update() 
    { 
     $this->bean->login = $this->_login; 
     $this->bean->password = $this->_password; 
    } 
} 

Тогда вы можете просто использовать:

$user = R::dispense('users'); 
R::store($user); 

Удачи!

Смежные вопросы