我的表数据库有一个名为' members'的表。而不是用户'。我使用以下代码
为members表创建了一个模型class Model_Member extends Model_Auth_User
在使用Auth模块时,以下代码引用了一个例外,表示用户'用户'不存在。我怎样才能找到桌子上的成员'而不是用户'。或者我应该在数据库中重命名我的表?
其他Auth表名称如下
' member_tokens',' roles_members'和'角色'
答案 0 :(得分:0)
这不应该是一个大问题,只是覆盖$_has_many
关系。
class Model_Member extends Model_Auth_User {
/**
* A user has many tokens and roles
*
* @var array Relationhips
*/
protected $_has_many = array(
'member_tokens' => array('model' => 'Member_Token'),
'roles' => array('model' => 'Role', 'through' => 'roles_members'),
);
public function create_member($values, $expected)
{
$extra_validation = Model_Member::get_password_validation($values)
->rule('password', 'not_empty');
return $this->values($values, $expected)->create($extra_validation);
}
public function update_member($values, $expected = NULL)
{
if (empty($values['password']))
{
unset($values['password'], $values['password_confirm']);
}
// Validation for passwords
$extra_validation = Model_Member::get_password_validation($values);
return $this->values($values, $expected)->update($extra_validation);
}
}
相应地创建模型Member_Token
和表格roles_members
(字段名称member_id
而不是user_id
)。
class Model_Member_Token extends Model_Auth_User_Token {
// Relationships
protected $_belongs_to = array(
'member' => array('model' => 'Member'),
);
protected function create_token()
{
do
{
$token = sha1(uniqid(Text::random('alnum', 32), TRUE));
}
while (ORM::factory('Member_Token', array('token' => $token))->loaded());
return $token;
}
}
我做了不测试上面的代码,它只是让你知道如何做到这一点。
如果您仍然收到异常,请发布异常消息。