[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Kohana
alekseyshavrak
Подскажите!!!

При регистрации пользователей нужно сделать 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
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.