CakePHP: модель администратора, которая может создавать другие модели - PullRequest
0 голосов
/ 30 июля 2011

У меня есть следующие модели: Students, Teachers, Administrator

То, что я хочу сделать, это иметь меню администратора, где я могу перечислить всех учеников и учителей, создать новых и редактировать их тоже.

Каков наилучший способ достичь этого? Импортировать модель в контроллер администратора?

Ответы [ 2 ]

1 голос
/ 30 июля 2011

Как говорит @Anh, самый простой способ - сделать admin_ действиями в контроллерах ученика и учителя соответственно.Вы можете получить доступ к любой модели с любого контроллера.Если вы хотите перечислить учителей в контроллере учеников или наоборот, вы можете сделать это.
По умолчанию контроллер импортирует только модель с тем же именем.Если эта модель связана с другими моделями, вы можете получить доступ к другим моделям через ассоциацию, например $this->Student->Teacher.
Если вы собираетесь делать это часто в контроллере, просто загрузите необходимые модели непосредственно в контроллер, используя$uses свойство:

class StudentsController extends AppController {
    public $uses = array('Student', 'Teacher');
}

Теперь у вас есть обе модели, доступные напрямую.

0 голосов
/ 30 июля 2011

Использовать префиксную маршрутизацию. В контроллере учителя создайте действия для администратора (admin_index (), admin_add () и т. Д.), Которые могут добавлять / редактировать / удалять записи учителей. То же самое для студенческого контроллера.

Редактировать: контроллер - это место, где вы можете манипулировать конкретной моделью (и соответствующими моделями). Если вы хотите, чтобы на одной странице были и ученики, и учителя, связаны ли эти две модели? Подождите, не они оба пользователи сайта? Итак, что вы хотите: Администраторы могут CRUD пользователей, верно? Таким образом, вы можете перечислить всех пользователей на странице admin / users / index (я хочу показать здесь: иногда проблема может привести к новому дизайну БД, потому что вы понимаете, что вы на самом деле хотите, чтобы эти модели были).

Либо так, либо вы можете сделать быстрое и грязное исправление либо: loadModel в выбранном вами контроллере, либо использовать $ использует, либо установить произвольные отношения между учителем и учеником.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...