현재 CakePHP find ('all') 함수를 사용하여 데이터베이스에서 여러 필드를 검색하고 있습니다. 나는 'fields'=> array ('Model.Field')를 사용하여 반환되는 필드의 수를 제한하는 방법을 알고있다. 그러나이 함수는 현재 다음과 같은 데이터를 반환하고 있습니다.CakePHP 배열 내 필드 찾기
array (size=1)
0 =>
'Model' =>
array (size=1)
0 =>
array (size=8)
'Field1' => string 'value'
'Field2' => string 'value'
'Field3' => string 'value'
'Field4' => string 'value'
'Field5' => string 'value'
'Field6' => string 'value'
'Field7' => string 'value'
'Field8' => string 'value'
이 필드 중 일부만 반환하고 싶습니다. 이 구문을 찾을 수 없습니다. 나는 다음과 같은 옵션 시도 :
'Model.Field1' (returns false)
'Model.0.Field1' (returns false)
'Model.[0].Field1' (returns false)
'Model' => 0 => 'Field1' (invalid syntax)
'Model' => '0.Field1' (returns false)
찾기 기능이 할 수있는 방법이 있나요를, 또는 더 나은 오프 그냥 내 자신의 SQL 쿼리를 쓰고 있어요?
편집 : 여기의 요청에 따라 찾기 기능입니다 - 이것은 현재 그들이 부분 배열 내에서 값을 반환하지 않는 모델 1과 모델 2의 결과를 제한 잘 작동
$this->Model1->find('all', array(
'conditions' => $conditions,
'restrict' => array('Model1', 'Model2', 'Model3', 'Model4'),
'fields' => array('Model1.Field1', 'Model1.Field2', 'Model1.Field3', 'Model1.Field4', 'Model1.Field5', 'Model1.Field6', 'Model1.Field7',
'Model2.Field1', 'Model2.Field2', 'Model2.Field3', 'Model2.contract_id', 'Model2.Field4')
));
가. 위에서 언급 한 것처럼 Model3과 Model4에 대해 동일한 구문을 사용하면 작동하지 않습니다. 여기가 "포함"옵션을 사용하려고 노력 무엇 :
$this->Model1->find('all', array(
'conditions' => $conditions,
'restrict' => array('Model1', 'Model2', 'Model3', 'Model4'),
'fields' => array('Model1.Field1', 'Model1.Field2', 'Model1.Field3', 'Model1.Field4', 'Model1.Field5', 'Model1.Field6', 'Model1.Field7',
'Model2.Field1', 'Model2.Field2', 'Model2.Field3', 'Model2.contract_id', 'Model2.Field4'),
'contain' => array(
'Model3' => array(
'fields' => array(
'Field1',
'Field2',
'Field3',
'Field4',
'Field5',
)
)
)
));
당신은'전체 찾을 게시물 수 ('모든') ' – bill