2014-02-19 3 views
-1

내가 배열로 결과를 필터링해야 찾을 수 있지만, 나는 다음과 같은 통지를받을CakePHP의 목록 배열 조건

공지 사항 (8) : 문자열 변환에 배열 [APP/모델/User.php, 라인 199] 공지 사항 (8) : 정의되지 않은 변수 :이 도움이 될 것입니다 배열 [APP/모델/User.php, 라인 199]

$hotelsId = ClassRegistry::init('HotelUser')->find('all',array('fields'=>array('hotel_id'),'conditions'=>array('user_id'=>$userId))); 
     $ids = array(); 
     foreach ($hotelsId as $hotel) { 
      $ids[] = $hotel['HotelUser']['hotel_id']; 
     } 
     $hotels = ClassRegistry::init('Hotel')->find('list',array('conditions'=>array('IN'=>array('Hotel.id'=>$ids)))); 
+1

''IN ''을 사용하지 마십시오. 단지 하나의 id 인 것처럼 배열을 전달하면됩니다. 케이크가 마술로'IN' 진술을 추가 할 것입니다 – Eagle

+0

통지 및 오류를 게시 할 때 코드의 어느 행이 오류에 해당하는지 표시하십시오. 이 코드에서는 Line 199이'foreach()'줄이라고 가정합니다. 그 맞습니까? –

+0

Thanks Eagle and George, 'In'을 삭제하면 효과가있었습니다. – Hernandez91

답변

0
$hotelsId = ClassRegistry::init('HotelUser')->find('list',array(
            'fields'=>array('hotel_id'), 
            'conditions'=>array('user_id'=>$userId))); 
    $hotels = ClassRegistry::init('Hotel')->find('list',array(
            'conditions'=>array('Hotel.id'=>$hotelsId))); 

희망!