2015-06-16 11 views
7

Yii2 des Standard-Datenanbieters Index-Seite ist wie folgt:Yii2 Active Record Abfrage mehrere where-Klausel von Array

$dataProvider = new ActiveDataProvider([ 
    'query' => ModelName::find(), 
]); 

Jetzt habe ich eine Reihe bekam wie $arr = [1, 2, 4, 6];

Ich möchte eine where-Klausel hinzufügen wie:

WHERE parentId=1 OR parentId=2 OR parentId=4 OR parentId=6 

Wie kann ich das tun?

Antwort

11

wie dies getan werden kann:

$query = ModelName::find()->where(['parentId' => $arr]); 

$dataProvider = new ActiveDataProvider([ 
    'query' => $query, 
]); 

Wenn Sie ein Array an where passieren, verwandelt Yü sie automatisch in IN Zustand.

So generiert SQL bedingte Teil wird WHERE parentId IN (1, 2, 4, 6); sein.

Es entspricht Ihrem genannten Zustand mit OR.