При регистрации пользователей нужно сделать 3 записи в БД.
1) В таблицу users
2) В таблицу roles_users
3) В таблицу profiles
Первые 2 сделал, а 3 не могу!!! Вообще не понимаю как там се это работает, код ниже:
if (isset($_POST['submit'])){
$_POST['email'] = $_POST['username'];
$data = Arr::extract($_POST, array('username', 'password', 'name', 'surname'));
try {
$users = ORM::factory('user')
->create_user($_POST, array('username', 'email', 'password')) // Регистрируем пользователя
->add('roles', ORM::factory('role', array('name' => 'login')) // Добавляем роль login
);
}
catch (ORM_Validation_Exception $e) {
$errors = $e->errors('auth');
}
}
Спустя 24 минуты, 47 секунд (10.05.2012 - 21:08) Invis1ble написал(а):
ORM::factory('profile')
->values($data)
->create();
Спустя 3 минуты, 38 секунд (10.05.2012 - 21:11) johniek_comp написал(а):
Цитата |
Вообще не понимаю как там се это работает |
так зачем в кохану лезть?
я бы сделал примерно так:
$model = ORM::factory('user');
$model->values(array(
'username' => $_POST['username'],
'password' => $_POST['password'],
'name' => $_POST['name'],
'surname' => $_POST['surname'],
));
try
{
$model->save();
$model->add('roles', ORM::factory('role')->where('name', '=', 'login')->find());
}
catch (ORM_Validation_Exception $e)
{
echo $e;
}
Спустя 21 час, 55 минут, 52 секунды (11.05.2012 - 19:07) alekseyshavrak написал(а):
Спасибо всем!!!
Сам вроде решил проблему, если будут способы получше, предлагайте..буду очень рад!!! :) :) :)
Листинг:
Сам вроде решил проблему, если будут способы получше, предлагайте..буду очень рад!!! :) :) :)
Листинг:
if (isset($_POST['submit'])){
$_POST['email'] = $_POST['username'];
$_POST['password_confirm'] = $_POST['password'];
$data = Arr::extract($_POST, array('username', 'password', 'name', 'surname'));
try {
// Добавляем логин, пароль и роль
$users = ORM::factory('user')
->create_user($_POST, array('username', 'email', 'password'))
->add('roles', ORM::factory('role', array('name' => 'login')));
// Добавляем профайл
$profile = DB::insert('profile', array('user_id', 'name', 'surname'))
->values(array($users->id, $data['name'], $data['surname']))
->execute();
$this->action_login();
$this->request->redirect();
}
catch (ORM_Validation_Exception $e) {
$errors = $e->errors('auth');
}
}
Спустя 4 минуты, 29 секунд (11.05.2012 - 19:12) Invis1ble написал(а):
Query Builder в перемешку с ORM... кошмар
Вообще, не вижу смысла разделять данные пользователя на 2 таблицы - user и profile
Вообще, не вижу смысла разделять данные пользователя на 2 таблицы - user и profile