2012-03-30 2 views
3

케이크 PHP는 어떻게 쿼리 PHP를 사용하여 id 값으로 변경 쿼리 결과 배열 키를 찾을 수 있습니까?케이크 PHP는 쿼리 결과를 찾을 수 id 값을 가진 배열 키를 케이크 케잌을 사용하여 케이크

$videos = $this->Video->find('all'); 

print_r($videos); 

배열은 케이크 PHP는 그 자체로 가능

Array 
(
    [0] => Array 
     (
      [Video] => Array 
       (
        [id] => 6 
       ) 

     ) 

    [1] => Array 
     (
      [Video] => Array 
       (
        [id] => 8 
       ) 

     ) 
) 

방법 아래

Array 
(
    [6] => Array 
     (
      [Video] => Array 
       (
        [id] => 6 
       ) 

     ) 

    [8] => Array 
     (
      [Video] => Array 
       (
        [id] => 8 
       ) 

     ) 
) 

같은 id 값을 가진 배열의 키를 변경하는 것?

답변

1

아니요, 아닙니다. afterFind()에서 결과를 변경하고 book.cakephp.org에서 찾으면되지만 단순히 데이터를 그대로 사용합니다. Id는 어쨌든 사용할 수 있기 때문에이 추가 오버 헤드와 복잡성을 추가 할 이유는 없습니다.

8

실제로 데이터가이 형식이어야하면 afterFind을 사용하여 ID를 설정하거나 CakePHP의 Hash/Set 클래스를 사용할 수 있습니다.

은 자세한 내용을 참조 http://book.cakephp.org/2.0/en/core-utility-libraries/hash.html

를 들어 CakePHP의 나이에 비해 2.2

$videos = $this->Video->find('all'); 
$videos = Set::combine($videos, '{n}.Video.id', '{n}'); 
debug($videos); 

이 (CakePHP는 2.2부터)

$videos = $this->Video->find('all'); 
$videos = Hash::combine($videos, '{n}.Video.id', '{n}'); 
debug($videos); 

또는이 시도 당신이 필요한 이유 당신이 우리에게 할 수있는 경우 데이터를이 형식으로 변경해야하는 경우 데이터를 이러한 방식으로 변경하지 않아도되므로 더 나은 방법을 제안 할 수 있습니다.

1

CakePHP는 2.2에서는이 키와 ID로 모든 값을 출력 할

$videos = $this->Video->find('list'); 
pr($videos); 

를 사용할 수 있습니다.

1.3에서 사용할 수 있는지 잘 모르겠지만 시도해 볼 수는 있습니다 ...