2017-05-21 4 views
0

Ich möchte folgende select-Anweisung in CakePHP 3.XWie CASE-Anweisung mit CakePhp 3.x verwenden?

SELECT 
    ... 
    (CASE WHEN declined_by = 1 THEN Customer WHEN declined_by = 2 THEN Admin WHEN declined_by = 3 THEN Both ELSE None END) AS `Declined_by` 
    ... 

auszuführen Aber ich will keine benutzerdefinierten query` verwenden. Ich brauche Code, der enthalten:

$query->newExpr()->addCase() 

und `-> eq() Funktionen. in cakephp

use Cake\Datasource\ConnectionManager; 
$connection = ConnectionManager::get('default'); 
$results = $connection->execute('YOUR QUERY')->fetchAll('assoc'); 
+3

Also, was ist das Problem, das Sie gegenüberstehen? Das How to ist im Cookbook beschrieben: https://book.cakephp.org/3.0/en/orm/query-builder.html#case-statements** – ndm

Antwort

0

Ordnung

-2

Sie können roh mysql Abfrage ausführen! schließlich bekam ich meine Antwort. Danke für alle. hier ist meine letzte Abfrage.

$query=$OrdersModel->find('all'); 

$decline_member = $query->newExpr() 
       ->addCase([$query->newExpr()->eq('declined_by','1'),$query->newExpr()->eq('declined_by','2'), 
       $query->newExpr()->eq('declined_by','3'),],['Customer','Admin','Both','None'],['string','string','string','string']); 
+0

Wie ich schon erwähne das ich nicht will Verwenden Sie eine benutzerdefinierte Abfrage. Ich möchte die einzige Funktion wie newExpr() -> addCase() und eq() verwenden. –