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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: ошибка при создании роли
СообщениеДобавлено: 17 авг 2013, 11:53 
Не в сети
Бывалый

Зарегистрирован: 30 июл 2013, 15:31
Сообщения: 47
Всем привет ,
Пытаюсь сделать авторизацию как описано тут http://kohana3.ru/module/auth

Пользователь создается но проблемы с с созданием ролей :

Код:
   $Res= ORM::factory('users')->values($DataArray)->create() -> add('roles', ORM::factory('role', array('name' => 'login')));

Выскакивает ошибка
Цитата:
ErrorException [ Notice ]: Undefined index: roles


Код:
MODPATH/orm/classes/Kohana/ORM.php [ 1564 ]

1560    public function add($alias, $far_keys)
1561    {
1562       $far_keys = ($far_keys instanceof ORM) ? $far_keys->pk() : $far_keys;
1563
1564       $columns = array($this->_has_many[$alias]['foreign_key'], $this->_has_many[$alias]['far_key']);
1565       $foreign_key = $this->pk();
1566
1567       $query = DB::insert($this->_has_many[$alias]['through'], $columns);
1568
1569       foreach ( (array) $far_keys as $key)


Я надеялся что описав в модели юзера отношение "has_many" поможет строки
Код:
class Model_Users extends ORM //Model
{
   protected $_table_name = 'users';
   protected $_has_many = array(
      'id' => array(
         'model' => 'roles_users',
         'through' => 'user_id',
      ),
   );

Но ошибка осталась. Как ее исправить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ошибка при создании роли
СообщениеДобавлено: 17 авг 2013, 13:12 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
такое ощущение что ты даже не читал, что написано в http://kohana3.ru/module/auth где ты там подобный код нашел?

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ошибка при создании роли
СообщениеДобавлено: 17 авг 2013, 16:54 
Не в сети
Бывалый

Зарегистрирован: 30 июл 2013, 15:31
Сообщения: 47
Сначала начал делать как в указанной статье - полезла ошибка - начал искать в нете.
если не так, подскажите как.

И еще я вывел на экран значение переменных где ошибка :
Код:
 $this->_has_many ::Array
(
    [id] => Array
        (
            [foreign_key] => users_id
            [through] => user_id
            [far_key] => id_id
            [model] => roles_users
        )

)


 $alias ::roles

У меня не указаны отношения roles? Как их правильно указать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ошибка при создании роли
СообщениеДобавлено: 17 авг 2013, 17:10 
Не в сети
Бывалый

Зарегистрирован: 30 июл 2013, 15:31
Сообщения: 47
Возможно разные версии но у себя функции ->create_user я не нашел
У меня 3.3.0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ошибка при создании роли
СообщениеДобавлено: 17 авг 2013, 17:53 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
http://kohanaframework.org/3.3/guide-ap ... reate_user все там есть

вначале прочтите местные статьи ( http://kohanaframework.su ), они более доступные. http://kohana3.ru/ хорош как справочник скорее т.к. охватывает больше моментов.

список статей по теме:

http://brotkin.ru/2009/02/20/svoya-cms- ... ulyu-auth/

http://jdstraughan.com/post/auth-module ... rm-driver/

http://kerkness.ca/kowiki/doku.php раздел "How to use the Auth module"

статьи несколько "бородатые" создание\изменение пользователей лучше делать через соответствующие методы create_user\update_user

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ошибка при создании роли
СообщениеДобавлено: 18 авг 2013, 16:21 
Не в сети
Бывалый

Зарегистрирован: 30 июл 2013, 15:31
Сообщения: 47
Спасибо за ссылки, читаю кое что проясняется
Чего не пойму а что означает код :
Код:
ORM::factory('role', array('name' => 'login')

Что означают два элемента в массиве и как они работают ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ошибка при создании роли
СообщениеДобавлено: 18 авг 2013, 16:40 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
по названиям можно догадаться даже...

у метода ORM::factory 3 варианта работы:
1. ORM::factory('role') возвращает модель не загруженный объект
2. ORM::factory('role', $id) где $id значение prymary поля, возвращает загруженный объект т.е. при таком вызове автоматом происходит запрос к БД
3 ORM::factory('role', array('name' => 'login')) массив полей - значений таблицы, возвращает загруженный объект

ORM::factory('User', array('firstname' => 'Vova', 'lastname' => 'Sidorov')) найти всех Вов Сидоровых в таблице пользователей

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


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

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


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

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


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

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