Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Как сделать модель с двойной связью с собой?

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
justiam

цитировать



Зарегистрирован: 28 Июл 2008 00:49:33
Сообщения: 24

СообщениеДобавлено: 21 Мар 2009 22:22:08    Заголовок сообщения: Как сделать модель с двойной связью с собой? Ответить с цитатой

Всем привет! У меня есть модель, в которой есть поля id и next_id.

Я хочу получать из нее сразу и следующий элемент, и предыдущий (т.е. у которого в качестве next_id находится текущий элемент).

Как сделать, нет идей?..

Код:
var $hasOne =  array('ParentElement'=>array('className'=>'Element','foreignKey'=>'parent_id'),
         'NextElement'=>array('className'=>'Element','foreignKey'=>'next_id'),
         'PrevElement'=> ??????????????????????????????
);
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 22 Мар 2009 09:06:15    Заголовок сообщения: Ответить с цитатой

А можно описать для чего это? Может есть и другое решение
_________________
Все самое интересное в реальном времени - xmpp:cakephp@conference.jabber.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
justiam

цитировать



Зарегистрирован: 28 Июл 2008 00:49:33
Сообщения: 24

СообщениеДобавлено: 22 Мар 2009 17:17:04    Заголовок сообщения: Ответить с цитатой

Есть модель Elements, и у каждого элемента может быть:

1) Родитель (на странице родителя приводится список детей, что-то вроде оглавления)
2) Следующий элемент (на странице каждого элемента есть ссылка "продолжение")

но хочу и ссылку "предыдущая страница"

сейчас сделал просто через метод в модели, но может есть способ штатными средствами?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nws

цитировать



Зарегистрирован: 25 Фев 2008 15:42:23
Сообщения: 96

СообщениеДобавлено: 23 Мар 2009 01:56:45    Заголовок сообщения: Ответить с цитатой

Если я правильно понял, тебе нужно дерево

http://www.ewgenij.net/CakePHP-Tree-Behavior.html
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 23 Мар 2009 08:33:30    Заголовок сообщения: Ответить с цитатой

Ага. Дерево подойдет.
А для "пред. страница" и "след. страница" можно использовать find('neighbors')
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
justiam

цитировать



Зарегистрирован: 28 Июл 2008 00:49:33
Сообщения: 24

СообщениеДобавлено: 24 Мар 2009 01:03:51    Заголовок сообщения: Ответить с цитатой

Дерево, но у меня нет поля "left", только "right" ("next_id")

Но в любом случае огромное спасибо, я в другом месте зря кучу кода городил, оказывается Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 24 Мар 2009 09:26:05    Заголовок сообщения: Ответить с цитатой

justiam писал(а):
Дерево, но у меня нет поля "left", только "right" ("next_id")

Но в любом случае огромное спасибо, я в другом месте зря кучу кода городил, оказывается Smile


Ну так сделай поле lft
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru