>source

Eloquent에서 WhereIn 메서드를 사용하고 싶지만 이제는 아래와 같이 작동합니다.

<?php 
  $product = DB::table('product')
                   ->join('supplier','supp_code','=','prod_supplier_code')
                   ->select('product.*','supplier.supp_margin')
                   ->where('prod_seo_title','=',$id)
                   ->first();
  $decArr = explode(',',$product->prod_decoration_type);
        for($i=0; $i<count($decArr); $i++)
        {
            if($i==0)
            $inString = "'".$decArr[$i]."','";
            elseif ($i<(count($decArr))-1)
            $inString .= $decArr[$i]."','";
            else
            $inString .= $decArr[$i]."'";
        }
        $proDeco = DB::table('decoration')->whereIn('deco_print_type', [$inString])->get();
?>

그러나 쿼리에서는 다음과 같이 표시됩니다.

select * from `decoration` where `deco_print_type` in ('\'100109C9\',\'100110B9\',\'100144C9\',\'100186C9\'');

이 슬래시가 왜 오는지 이해할 수 없습니다. 이 문제를 해결하도록 도와주세요.

  • 답변 # 1

    그만큼 whereIn() 메소드는 모든 항목의 배열을 허용합니다. 귀하의 예제에서는 모든 값이 이미 연결된 하나의 요소가있는 배열을 전달합니다. 귀하의 예에 따라 통과하면됩니다. $decArr

    DB::table('decoration')->whereIn('deco_print_type', $decArr)->get();
    
    

관련 자료

  • 이전 Chrome 드라이버가있는 Selenium Python으로 전체 웹 페이지의 스크린 샷 찍기
  • 다음 ansi c - 텍스트 파일 열의 데이터를 배열에 저장합니다 C에서