yii2

2016-12-22 7 views
0

나는 즉yii2

1,2,3,4,5 

그래서 마지막에 내가이

같은 것을 달성 쉼표로 분리되는 구원 값으로 열이 다음 테이블했다
first row  1,2,3,4 
second row  2,3,5 
third row  1,4,5 

행은

그래서 1

같은 특정 값을 갖는 모든 행을 반환하고자 속성 종류를

이 내가

public function actionChecklist($categoryval) //category is the integer value eg 1 
{ 

    $checklistitems= TblChecklist::find()->where(
     [ 
      "category"=>in_array("category",[$categoryval]) 
     ] 
    )->all(); 


    var_dump($checklistitems); 
    die(); 

} 

시도 위의 코드는 항상 어디에서 당신은 LIKE 모든 단일 카테고리가 귀하의 경우 쉼표 즉, 두 개의 구분 기호로 둘러싸여 있음을 제공 사용할 수 있습니다 잘못된

답변

0

을 가고 빈 반환하는 것입니다 1,2,3,4,5 대신 ,1,2,3,4,5,입니다. 이 쉼표가 없다면 에 대한 검색은 10,2,3과 같은 내용을 포함하여 1과 함께 모든 것을 반환합니다.

검색 매개 변수는 이러한 쉼표로 둘러싸여해야합니다

$checklistitems= TblChecklist::find() 
    ->where(["like", "category", ",".$categoryval.","]) 
    ->all(); 

그러나, 당신은 아마 체크리스트 및 카테고리 사이의 접합 테이블을 생성하여 테이블을 비정규한다. 그런 다음 체크리스트 모델과 카테고리 모델 간의 관계를 만들어야합니다. 위의 코드는 다음과 같이 표시됩니다.

$checklistitems= TblChecklist::find() 
    ->joinWith("categories") 
    ->where(["categories.id" => $categoryval]) 
    ->all();