Один стол две модели - PullRequest
       35

Один стол две модели

0 голосов
/ 02 декабря 2010

у меня есть таблица сообщений
id
Тип enum (A, Q)
title
content

и мне нужны контроллеры questions_controller и answer_controller для использования
, пожалуйста, возглавьтеправильный путь к

1-
сделать 2 модели (вопрос и ответ) и использовать «посты» в качестве таблицы модели

2-
использовать модель поста в questions_controller и answer_controller

1 Ответ

0 голосов
/ 02 декабря 2010

Для меня это должно быть одна таблица имеет одну модель

Так что лучше использовать $ использует = массив ('Post'); в ваших контроллерах.

Обновление: Насколько я понял, вы хотите фильтровать данные в зависимости от типа столбца. На самом деле ваша модель БД неверна, потому что, за исключением случаев, когда они полностью не связаны, ваши ответы должны принадлежать вопросу. Это означает, что вам нужен дополнительный столбец parent_id, который будет определять родительский узел (вопрос) и дочерний узел (ответы).

Если у нас есть это предположение, тогда вы можете установить отношение в модели как:

class Post extends AppModel {
   ...
   var $belongsTo = array(
      'Parent' => array('className' => 'Post','foreignKey' => 'parent_id', 'conditions' => 'Parent.parent_id IS NOT NULL')
   );
   ...
}

Таким образом, у вас автоматически есть Post и Post-> Parent. Но я думаю, что было бы лучше иметь 2 таблицы - одну, которая содержит вопросы, а другую ответы.

...