In CakePHP 3, avevo un modello chiamato Articoli e un campo chiamato "soggetto", e mi sono imbattuto in un posto di blocco cercando di recuperare un elenco dei 100 soggetti degli articoli più comunemente usati.Come si usa COUNT (*) con find ('list') in CakePHP 3?
SQL risultante del seguente codice selezionato tutte i possibili campi e nonCOUNT(*)
:
$articles->find('list', [
'keyField' => 'subject',
'valueField' => 'COUNT(*)'
])
->group('subject')
->order(['COUNT(*)' => 'DESC'])
->limit(100)
->toArray();
poi mi sono ricordato "CakePHP’s ORM offers abstraction for some commonly used SQL functions.". Ma il seguente codice ha provocato "Errore: Nome della funzione deve essere una stringa":
$countFunc = $this->find()->func()->count('*');
$articles->find('list', [
'keyField' => 'subject',
'valueField' => $countFunc
])
->group('subject')
->order([$countFunc => 'DESC'])
->limit(100)
->toArray();
$ this-> Zendesks-> find ('list', ['keyField' => 'company_id', 'valueField' => 'comment_id']) -> dove (['created_at> =' => $ month3Start, 'created_at <=' => $ month1End]) -> selezionare (['company_id', 'comment_id' => $ this-> Zendesks-> find() -> func() -> count ('*')]) -> group ('company_id '); Basta copiare il mio lavoro qui, che può aiutare gli altri con maggiori dettagli. e grazie per il tuo codice! –