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

связи ORM
http://forum.kohanaframework.su/viewtopic.php?f=33&t=572
Страница 1 из 1

Автор:  skiv [ 11 фев 2013, 18:01 ]
Заголовок сообщения:  связи ORM

Здравствуйте,
пожалуйста помогите разобраться с ORM....

После нескольких раз прочтения мануалов на русскоязычных и зарубежных сайтах, проблемы не решились,

К примеру, есть таблица users и profiles, отношение между ними _has_one, но при выполнении метода add, кохана начинает ругаться на отсутствие идентификатора 'profile', находящегося в свойстве has_one. Если связку изменить на has_many, то ругается на не переданное название таблицы.
В чем может быть проблема?

и еще вопрос. можно ли как-нибудь передавать вторым параметром add не один id а массив, для сохранения массива в субтаблице?

Автор:  Zorato [ 12 фев 2013, 02:55 ]
Заголовок сообщения:  Re: связи ORM

Насколько я помню, методы add, remove и has можно использовать только при отношении many-many.

Автор:  skiv [ 12 фев 2013, 16:04 ]
Заголовок сообщения:  Re: связи ORM

возможно ли выполнить средствами ORM следующий запрос ?

Код:
select * from (

 SELECT * FROM `user_friends` AS `f`
 LEFT JOIN `users` as `u`
 ON `f`.`user_id` = `u`.`id` 
 WHERE (`f`.`user_id` = 1 OR `f`.`friend_id`=1)
 UNION
 SELECT * FROM `user_friends` AS `f`
 RIGHT JOIN `users` as `u`
 ON `f`.`friend_id` = `u`.`id`
 WHERE (`f`.`user_id` = 1 OR `f`.`friend_id`=1)
) as `tr` where `id` != 1

Автор:  rain2 [ 13 фев 2013, 20:04 ]
Заголовок сообщения:  Re: связи ORM

Код:
$user =ORM::factory('user');
$friends=$user->userfriends->where('user_id', '=', '1',)->or_where('friend_id', '=', '1',)->as_array('id');
foreach ($friends as $id)
        {
            $user->where('id', '=', $id,)->and_where('id', '!=', 1,)->find_all();   
        }
Может как то так?

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