Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
ORM связи и значения http://forum.kohanaframework.su/viewtopic.php?f=33&t=619 |
Страница 3 из 4 |
Автор: | borodatych [ 28 апр 2013, 19:56 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Цитата: 1. вот так делать не стоит. нужно данные методы определить в конкретной модели, чтобы не таскать их по всем моделям. Я вас понял, но считаю по другому. Пускай будет, вдруг я захочу еще что-нибудь добавить в меню. Цитата: 2. function addMenu как-то странно на мой взгляд реализована, DB быть не должно добавьте лучше явно атрибут $pages в модель и через него сохраняйте,а еще лучше расширьте ORM Я тут ни чего не изобретал - это копия родной ORM функции add. Просто скопировал и переделал под нужды. Вроде это и называется расширить, могу ошибаться. Пускай будет не addMenu, а addWithPosition. Цитата: лучше расширьте ORM так, чтобы он использовал get\set\save еще и для связующей таблицы. А вот тут я вас не понял. Цитата: 4.не 'menu', а 'Menu' т.к. модель называется Model_Menu Позвольте не согласится. Именно menu, так как тут: Код:
Цитата: Я бы делал так:В виде задаем id меню Все верно, но я чуток извратился и у меня не одно меню, а четыре. Вот я говорил, что не красивый массив)) Цитата: В контроллере создаем модель меню(которая в свою очередь через $pages связана с таблицей menus_pages), удаляем все страницы для данного меню, передаем POST данные в модель и сохраняем. Я и показал модель меню, в которой есть доп строчка sort. Если нужно заюзать метод addMenu, то добавляем ее в модель и все. Повторюсь, то что показал выше работает) Кстати тут родной метод remove отрабатывает на ура. Цитата: 5. всю работу с данными осуществляют в моделях, контроллер служит только для пере..... Благодарю за совет, учту. |
Автор: | Sergey [ 28 апр 2013, 20:16 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Прям смотришь на всех вас со стороны и глаз радуется Толковые Kohana-девелоперы выйдут. Всё таки есть повод гордится и за Россию. А то я уж было стал думать, что адекватных девелоперов, способных копаться в коде у нас нет практически |
Автор: | borodatych [ 28 апр 2013, 23:29 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Забыл... Цитата: Если нужно заюзать метод addMenu, то добавляем ее в модель и все. Ну и соответственно в связующей таблице должны быть колонка, которую мы задаем тут: Код:
Sergey, стараемся. А что вы посоветуете? Если я учту пожелания/рекомендации WinterSilence, то мне придется расширить метод addMenu. И скорее всего, по мимо опции sort в модели придется перечислять еще и виды меню - top,left,right,bottom. Ну хочется мне 4-е меню.... Это получается так громоздко, надо сперва описать в модели, потом не забыть передать эти параметры из вида. Ведь так быстрее и проще(чуть-чуть переделал ранее выложенный): Код:
И где нужно заюзать, просто: Код:
Ну и формируем, а вот тут пока не очень красиво: Код:
Мой вид: Код:
извиняюсь за подробную копию... Единственное за чем нужно следить, дак это что бы колонки в таблицы назывались так же как они используются в модели. Ни знаю какую реализацию и выбрать, обе нравятся. Моя вроде как проще, с расширением ORM логичнее, но сложнее в деталях. |
Автор: | WinterSilence [ 29 апр 2013, 10:05 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Цитата: Я вас понял, но считаю по другому. Пускай будет, вдруг я захочу еще что-нибудь добавить в меню. ну так сделайте класс ORM_Menu extends ORM и потом развивайте уже Цитата: Позвольте не согласится. Именно menu, так как тут: ага пардоньте) с factory перепутал Компактные формы: http://kohanaframework.org/3.0/guide/api/Form#checkbox Form::checkbox('remember_me', 1, (bool) $remember); и есть еще неплохой модуль Formo для создания форм в духе ооп |
Автор: | borodatych [ 29 апр 2013, 10:31 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Цитата: ну так сделайте класс ORM_Menu extends ORM и потом развивайте уже Действительно, благодарю. До форм и других хелперов пока руки не доходят, скоро займусь... |
Автор: | Sergey [ 29 апр 2013, 17:32 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Я люблю читать код. Любой. Это как пытаться думать чужой головой. Читая чужой код становится ясно другое мировоззрение, взгляд на вещи другого человека. Очень интересно. А по поводу меню - много лишнего у вас вырисовывается. Насколько я могу судить, бегло просмотрев ваши ответы в этом посте, вы пытаетесь запихнуть в один класс для работы с меню, интерфейс практически для всего Попробуйте писать код в духе чистого ООП. То что связано с регионами (верхнее меню, нижнее меню и т.д.) должно обрабатываться отдельным классом, отвечающим за регионы. То что связано с модулями должно обрабатываться отдельным классом модулей. Для работы с меню вам скорее всего лучше подойдёт не ORM а ORM_MPTT так как он лучше работает с деревьями. Кроме всего прочего у вас должен быть отдельный класс (не контролёр), может быть хелпер, отвечающий за повседневные задачи при работе с меню. Ну и само собой контролёр. Вот, может быть будет интересно, взгляните на это: Gleez_Menu Model_Menu |
Автор: | WinterSilence [ 29 апр 2013, 22:20 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Sergey> ORM_MPTT он использует, а я вот не встречал, расскажите поподробнее что за зверь? |
Автор: | Sergey [ 30 апр 2013, 11:50 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Рекомендую Nested set model ДЕРЕВО КАТАЛОГОВ NESTED SETS (ВЛОЖЕННЫЕ МНОЖЕСТВА) И УПРАВЛЕНИЕ ИМ Overview of the functionality of Kohana MPTT |
Автор: | WinterSilence [ 30 апр 2013, 15:49 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Sergey> ааа,я думал что-то большее, я использую nested set из doctrine2 |
Автор: | borodatych [ 30 апр 2013, 16:07 ] |
Заголовок сообщения: | Re: ORM связи и значения |
Позвольте вопрос наперед, пока не разбирался. ORM_MPTT включает все возможности класса NESTED SETS? |
Страница 3 из 4 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |