Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

ошибка при создании роли
http://forum.kohanaframework.su/viewtopic.php?f=31&t=731
Страница 1 из 1

Автор:  mstdmstd [ 17 авг 2013, 11:53 ]
Заголовок сообщения:  ошибка при создании роли

Всем привет ,
Пытаюсь сделать авторизацию как описано тут 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',
      ),
   );

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

Автор:  WinterSilence [ 17 авг 2013, 13:12 ]
Заголовок сообщения:  Re: ошибка при создании роли

такое ощущение что ты даже не читал, что написано в http://kohana3.ru/module/auth где ты там подобный код нашел?

Автор:  mstdmstd [ 17 авг 2013, 16:54 ]
Заголовок сообщения:  Re: ошибка при создании роли

Сначала начал делать как в указанной статье - полезла ошибка - начал искать в нете.
если не так, подскажите как.

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

)


 $alias ::roles

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

Автор:  mstdmstd [ 17 авг 2013, 17:10 ]
Заголовок сообщения:  Re: ошибка при создании роли

Возможно разные версии но у себя функции ->create_user я не нашел
У меня 3.3.0

Автор:  WinterSilence [ 17 авг 2013, 17:53 ]
Заголовок сообщения:  Re: ошибка при создании роли

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

Автор:  mstdmstd [ 18 авг 2013, 16:21 ]
Заголовок сообщения:  Re: ошибка при создании роли

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

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

Автор:  WinterSilence [ 18 авг 2013, 16:40 ]
Заголовок сообщения:  Re: ошибка при создании роли

по названиям можно догадаться даже...

у метода 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')) найти всех Вов Сидоровых в таблице пользователей

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/