Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 29 мар 2024, 02:42

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
СообщениеДобавлено: 16 июн 2012, 18:01 
Не в сети
Зеленый

Зарегистрирован: 16 июн 2012, 17:53
Сообщения: 3
Здравствуйте!

Подскажите код для ORM чтобы в таблицу вставить 2 записи.
Так я вставляю одну запись в формате id юзера и id роли в таблицу Roles_Users:
Код:
<?php defined('SYSPATH') or die('No direct script access.');

class Model_Register {

    public function reg($email, $password, $type) {
        $user = new Model_User();
        $user->username = $email;
        $user->email = $email;
        $auth = Auth::instance();
        $user->password = $auth->hash_password($password);
        $user->save();

        $role = new Model_RolesUser();
        $role->user_id = $user->id;
        $role->role_id = $type;
        $role->save();

        return true;
    }

}

Как одновременно вставить 2 записи с одинаковым id юзер, но разными id роли?

Пока что нашел такое решение:
Код:
$query = DB::insert('roles_users', array('user_id', 'role_id'))->values(array($user_id, $type),array($user_id, $type+2));
$query->execute();

Но это не ORM.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 июн 2012, 18:31 
Не в сети
Бывалый

Зарегистрирован: 02 июн 2012, 07:14
Сообщения: 69
Недавно сталкивался с похожей ситуацией, насколько я понял, в кохане в орм нету возможности делать мультиинсерты, так что надо либо генерировать несколько запросов в цикле, либо использовать QueryBuilder, что вы и сделали во втором примере.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 июн 2012, 19:01 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 12 фев 2012, 01:02
Сообщения: 462
А что нужно обязательно орм ?

_________________
kohanaframework.su - обучение фреймворку Kohana


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 июн 2012, 19:53 
Не в сети
Зеленый

Зарегистрирован: 16 июн 2012, 17:53
Сообщения: 3
admin писал(а):
А что нужно обязательно орм ?

я думал что ORM более предпочтительней и думал, что через него нужно делать, а когда не получилось, то решил через DB сделать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 17 июн 2012, 14:39 
Не в сети
Бывалый

Зарегистрирован: 16 апр 2012, 19:44
Сообщения: 113
Для стандартного модуля auth это можно сделать так.
Код:
 /** @var Model_Auth_User $user  */
                    $user = ORM::factory('user')->create_user($_POST, array('username','password','email'));
                    $user->add('roles',ORM::factory('role')->where('name','=','login')->find())->add('roles',ORM::factory('role')->where('name','=','admin')->find());


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group