2012-05-13 2 views
1

Я хотел бы генерировать список, как день => Название:список CakePHP с функциями SQL

$news = $this->News->find('list', array(
    'conditions' => array(
     'News.created LIKE' => '2008-09%'), 
    'fields' => array(
     'DAY(News.created) AS day', 
     'News.name'), 
    'recursive' => -1)); 

... но не работает, почему?

Функция SUBSTR/SUBSTRING также ...

Когда я использую найти с имуществом 'все', функция DAY работает хорошо!

+0

Что означает «не работает»? Что происходит и что вы ожидаете? Вы должны быть более конкретными, иначе мы не сможем вам помочь. –

+0

Создать неправильный список – kicaj

+0

Я знаю, на вопрос уже ответил, но даже «Создать неправильный список» на самом деле не очень полезно. Как мы должны знать, что такое «неправильный» в этом случае? Это так же полезно, как сказать «не работает». Вы должны указать пример списка, который вы получите, и список, который вы хотите. Имейте это в виду для будущих вопросов. –

ответ

2

Это не сработает, потому что DAY(News.created) - это вычисленное значение, но оно, вероятно, будет работать, если вы сделаете его virtual field.

Обратите внимание, что при использовании 'all' каждая строка в массиве результатов будет иметь ключ [0][day] для этого значения, а не [News][day]. Это означает, что Cake не распознает его как поле из модели News, и именно поэтому вы не можете использовать его с 'list'.

+0

Большое спасибо, virtualFields замечательные! – kicaj

Смежные вопросы