1. вот так делать не стоит:
Цитата:
class ORM extends Kohana_ORM
нужно данные методы определить в конкретной модели, чтобы не таскать их по всем моделям
2. function addMenu как-то странно на мой взгляд реализована, DB быть не должно добавьте лучше явно атрибут $pages в модель и через него сохраняйте,а еще лучше расширьте ORM так, чтобы он использовал get\set\save еще и для связующей таблицы.
3. в Model_Page не должно быть sort, т.к. в таблице этой модели поле sort отсутствует, хотя могу ошибаться
4.
Цитата:
$page->addMenu('menu',$menu_id,$position);
не 'menu', а 'Menu' т.к. модель называется Model_Menu
Цитата:
И в контроллере в переборе массива, при условии если есть checkbox и input не ноль и не пусто
Я бы делал так:
В виде задаем id меню
Код:
<input type="hidden" name="menu_id" value="1">
и страницы:
Код:
..
<td><input type="checkbox" name="pages[{$page[id]}][id]" value="{$page[id]}"></td>
<td>{$page[name]}</td>
<td><input type="text" size="4" name="pages[{$page[id]}][sort]" value="{$page[sort]}"></td>
...
В контроллере создаем модель меню(которая в свою очередь через $pages связана с таблицей menus_pages), удаляем все страницы для данного меню, передаем POST данные в модель и сохраняем.
5. всю работу с данными осуществляют в моделях, контроллер служит только для передачи данных в\из модели\вида. Контроллер он как телефонистка: ей говорят мне бы поговорить с Петровым, она и соединяет, за него она на вопросы звонящего не отвечает. Модель не должна соответственно содержать никаких html тегов, они все в виде, ну а вид не должен как-то изменять данные (или только какие-то мелкие действия вроде экранирования спецсимволов и т.п.). Если нужно 3 в 1, то это реализуется через хэлпер