2016-11-26 16 views
0

Gibt es irgendwo an adapter für CakePHP 3.x-Modell zu handhaben 2.x syntax? Wie, intern, es umbauen Syntax wie folgt:CakePHP 3.x Modell Adapter für 2.x

array(
    'conditions' => array('Model.field' => $thisValue), 
    'fields' => array('Model.field1', 'DISTINCT Model.field2'), 
    'order' => array('Model.created', 'Model.field3 DESC'), 
    'group' => array('Model.field'), 
    'limit' => n 
) 

in:

$query->select('Model.field1') 
->distinct('Model.field2') 
->order->(['Model.created', 'Model.field3' => 'DESC']) 
->group('Model.field') 
->where('Model.field' => $thisValue) 

und ausgeführt Abfrage zurückgeben -> toArray(). So wird das Modell von 2.x mit 3.x kompatibel.

Vielen Dank an alle Ratschläge.

+0

Bitte beachten Sie, dass Fragen zu möglichen Offsite-Ressourcen in StackOverflow offtopisch behandelt werden. Du solltest besser solche Fragen in den [** CakePHP Foren **] (http://discourse.cakephp.org/) oder auf [** IRC **] (http://webchat.freenode.net/) stellen. ? Kanäle = Kuchenphp)/[** Slack **] (http://cakesf.herokuapp.com/). SO ist der Ort, um spezifische Programmierprobleme zu stellen, die Sie haben, wenn Sie die Syntax A in Syntax B umwandeln. – ndm

+0

Ja, danke. Fragte [dort] (http://discourse.cakephp.org/t/compatibility-adapter-for-model-2-x-to-becomes-with-3-x-orm/1616) sowie – Alex

Antwort

0

In Kuchen 3 Sie sind nicht beschränkt Builder abzufragen, können Sie auch ein Array find() (ähnlich wie es funktioniert in 2.x) passieren kann:

$query = $articles->find('all', [ 
    'conditions' => ['Articles.created >' => new DateTime('-10 days')], 
    'contain' => ['Authors', 'Comments'], 
    'limit' => 10 
]); 

Sie darüber here

lesen
+0

Danke , sehr hilfreich. Ich weiß nicht, warum ich das verpasst habe ... – Alex