Вы правы, похоже, вы не можете использовать DISTINCT
со списком
. Поскольку вам не нужен id
, а только имена, вы можете использовать найти все
, как указано выше, а затем $ first_names = Set :: extract ($ first_names, '/ Person / имя ');
. Это даст вам массив с разными именами.
Да, проблема в том, что вы используете листинг, предназначенный для вывода идентификаторов / значений. Возможно, вам придется найти («все»), а затем составить список самостоятельно.
Да, я также пытался получить уникальные результаты с помощью «списка», но он не работал. Затем я решил проблему, используя «все».
Попробуйте используйте 'group by', он отлично работает:
$first_names = $this->Person->find('list', array(
'fields'=>'first_name',
'order'=>'Person.first_name ASC',
'conditions'=> array('Person.status'=>'1'),
'group' => 'first_name'));