2017-05-31 11 views
0

細かい単にSQL作業で、この関数は、私が欲しいのテーブルのフィールドを返す必要がありますが、これは発生しません、テーブルのすべてのフィールドを返す"SELECT DISTINCT especie FROM packages"選択Distinc CakePHPの3リターンに間違ったフィールド

public function listSpicies() 
{ 
    $packages = $this->Packages->find('all') 
     ->select('especie') 
     ->distinct('especie'); 
    $this->set([ 
     'success' => true, 
     'data' => $packages, 
     '_serialize' => ['success', 'data'] 
    ]); 
} 
+0

生成されたSQLの外観は何ですか(Check ** [DebugKit](https://book.cakephp .org/3.0/ja/debug-kit.html)**)?どこに戻ってきているのかを確認しますか? – ndm

答えて

1

私はあなたが次のようなものを使うことができると思う:

$packages = $this->Packages->find('all' , [ 
      'fields' => [ 
       'anyAlias' => 'DISTINCT(espiece)' 
      ] 
     ]) 
    ->toArray();  

注意。このコレクションがシリアル化されてJSONとして出力されている場合はespieceが内部にある場合$_hiddenの配列 - これを配列から削除します

関連する問題