CakePHP - тип сообщения без таблицы дБ - PullRequest
0 голосов
/ 07 июня 2011

Какой лучший способ сделать это в cakephp:

У меня в базе данных есть модель Posts + контроллер + с полем «Тип сообщения» - ссылка на мой тип записи.

Идентификаторы типа записи: - Предварительный просмотр - Обзор - Новости

Я спрашиваю: как лучше всего (изначально) извлечь имя типа записи, не создавая таблицу Post_types и не связывая ее сpost_id.

Я пытался создать массив в списках конфигурации, он работал, но я думаю, что это может быть лучше, чем это.

Ответы [ 3 ]

2 голосов
/ 07 июня 2011

Вы можете использовать метод afterFind вашей модели Post и добавить туда поле post_type к своим результатам.Смотрите также поваренная книга .

1 голос
/ 07 июня 2011

Из того, что я понимаю, ваше post_type - это поле enum со значениями preview, review, news или varchar, в который, как вы знаете, добавляются только эти 3 типа, верно?

Вы можете попробовать следующий запрос

SELECT DISTINCT(post_type) FROM posts;

Это вернет все post_types, которые используются в вашей таблице posts.

В Cake вы можете сделать это либо с помощью метода find, либо query.

# Using find
$this->Post->find('all', array(
  'fields' => array('DISTINCT(post_type)')
);

# Or using the query directly (maybe easier in this case)
$this->Post->query("SELECT DISTINCT(post_type) FROM posts;");
0 голосов
/ 07 июня 2011

связывает ваши записи в таблице с таблицей post_types с $ hasOne. Например, с $ This-> Post-> найти ( 'все'); вы получите сообщение и post_type в одном массиве.

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