2016-08-31 2 views

답변

2

이 값은 열 이름 색인 열 이름 및 값을 위해 사용할 수있는 상태와 배열의 합성을 만들려면 ['in', ['id', 'name'], [['id' => 1, 'name' => 'foo'], ['id' => 2, 'name' => 'bar']]].

:

$models = Model::find()->where(['in', ['id', 'name'], [ 
    ['id' => 1, 'name' => 'George'], 
    ['id' => 2, 'name' => 'Tom'], 
]])->all(); 

보다 약 ActiveQuery::where() 읽어보십시오.

+0

가져와. 고마워요! – azlar

1

당신은 where()있어서 내부 in 조건을 사용할 수있는

: 피연산자 1 열 또는 DB 표현되어야한다. 피연산자 2는 어레이 또는 Query 객체가 될 수 있습니다. IN 조건을 생성합니다. 피연산자 2가 배열 인 경우 열 또는 DB 표현식이 있어야하는 값 의 범위를 나타냅니다. 피연산자 2가 쿼리 개체 인 경우 하위 쿼리가 생성되어 열 또는 DB 식의 범위로 사용됩니다. 예를 들어, [ 'in', 'id', [1, 2, 3]] 은 ID IN (1, 2, 3)을 생성합니다. 이 메서드는 열 의 이름을 올바르게 인용하고 범위의 값을 이스케이프합니다. in 연산자는 복합 열도 지원합니다. 이 경우 피연산자 1은 열의 배열이어야하며 피연산자 2는 배열 배열이거나 열의 범위를 나타내는 Query 개체 여야합니다.

http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html#hash-format

예 :

Model::find()->where(['in', 'id', [1,2]])->all(); 
+0

'''피연산자 1은 열 또는 DB 표현식'''하나의 열이어야합니까? – azlar