Cakephp-이름 가져 오기 함수

user2563686

cakephp에서 앱 플러그인을 개발 중입니다. 그리고 나는 기능, 데모 벨로우에 붙어 있습니다.

데이터베이스에는 데이터가있는 "플랫폼"테이블이 있습니다 ( '1'=> 'PC', '2'=> 'PS3'...).

게임보기에서 다음이 있습니다.

<? 
$platformes = array($igra['Igra']['pid']); /* gives me 1,2 */
$platforme = $this->requestAction(
    array(
        'plugin' => 'gamer', 
        'controller' => 'Igra', 
        'action' => 'getPlatformaIme'
    ),
    $platformes
); 
?>

컨트롤러에는 다음과 같은 기능이 있습니다.

function getPlatformaIme($pids) {
    $platforme =  explode(', ', $pids);
    $this->loadModel('Gamer.Platforme');

    foreach($platforme as $pid) {
        $this->Platforme->find('all', array(
            'conditions' => array('Platforme.id' => $pid)
        ));
        $name[] = $this->Platforme->field('name');
    }

    return implode(', ', $name);
}

이것은 나에게 PC, PS3를 줄 것이지만 그렇지 않습니다. 배열에 1이 없어도 PC를 제공합니다. 내 기능이 작동하도록 수정하려면 어떻게해야합니까?

Tnx에서 도움을 받으십시오. 여기에 올바른 방법이 있습니다.

함수:

function getPlatformaIme($pids) {
    $platforme[] =  explode(',', $pids);
    $this->loadModel('Gamer.Platforme');

    foreach($platforme as $pid) {
    $names = $this->Platforme->find('list', array(
        'conditions' => array(
            'Platforme.id' => $pid
        )
    ));
    }

    return implode(', ', $names);
}

이것은 배열이 (1,2)가 (PC, PS3)를 반환하는 경우 db의 이름을 제공합니다.

AD7six

문서를 참조하십시오

찾기 데이터를 반환, 그것은 객체의 상태를 수정하지 않습니다. 찾기의 반환 값이 사용되지 않으면 이유 / 혜택없이 SQL 쿼리를 실행합니다.

필드조건이 전달 될 것으로 예상 하거나 현재 모델 ID에 대한 필드 값을 읽습니다. 질문에는 조건이없고 모델에 ID가 설정되어 있지 않으므로 사실상 임의 레코드의 이름 필드가 여러 번 반환됩니다 (아마도 동일한 이름이지만 반드시 그런 것은 아님).

로직 변경없이 수정 된 코드 :

질문의 코드는 다음과 같이 수정할 수 있습니다.

function getPlatformaIme($pids) {
    $platforme =  explode(', ', $pids);
    $this->loadModel('Gamer.Platforme');

    foreach($platforme as $pid) {
        $this->Platforme->id = $pid;
        $name[] = $this->Platforme->field('name');
    }

    return implode(', ', $name);
}

사용하면 fieldfind를 호출 할 필요가 없습니다. 이렇게하면 다음과 같은 배열이 반환됩니다.

array(
    'One',
    NULL, # <- if the pid doesn't exist
    'Three'
)

적절한 찾기 사용

위의 방법은 이름 배열을 얻는 가장 논리적 인 방법이 아닙니다. find ( 'list') 는 이런 종류의 사용 사례에 존재합니다.

function getPlatformaIme($pids) {
    $platforme =  explode(', ', $pids);
    $this->loadModel('Gamer.Platforme');

    return $this->Platforme->find('list', array(
        'conditions' => array(
            'id' => $pids
        )
    ));
}

이렇게하면 다음과 같은 배열이 반환됩니다.

array(
    1 => 'One',
    3 => 'Three'
)

requestAction이 필요하지 않습니다.

요청을 호출하는 요청 작업을 사용하는 대신 컨트롤러를 호출하고 모델을 호출하는 대신 모델을 직접 호출 할 수 있습니다.

// anywhere
$names = ClassRegistry::init('Gamer.Platforme')->find('list', array(
    'conditions' => array(
        'id' => $pids
     )
 ));

캐싱 요소가 없으면 이러한 코드가 뷰에 있으면 안됩니다 . beforeRender 함수가 아니라 그렇지 않으면 유지 관리 할 수없는 응용 프로그램을 작성하기가 매우 쉽습니다.

그러나 질문의 ​​코드가 주어지면 하나의 대안입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

javascript-함수를 통해 함수 이름 가져 오기

분류에서Dev

함수 이름 및 인수 가져 오기

분류에서Dev

목록 파이썬에서 함수 이름 가져 오기

분류에서Dev

Ruby : 변수 이름 가져 오기

분류에서Dev

Haskell : 호출자 함수 이름 가져 오기

분류에서Dev

Clojure에서 호출 함수 이름 가져 오기

분류에서Dev

자바 스크립트에서 함수 이름 가져 오기

분류에서Dev

mocha의 afterEach 함수에서 테스트 이름 가져 오기

분류에서Dev

함수 내에서 개체 이름 가져 오기

분류에서Dev

자체 내에서 클래스 함수 이름 가져 오기

분류에서Dev

Javascript 함수에서 MVC 컨트롤러 이름 가져 오기

분류에서Dev

함수 내에서 폴더 이름 가져 오기

분류에서Dev

jQuery에서 함수 이름 가져 오기

분류에서Dev

주소로 함수 이름 가져 오기

분류에서Dev

Shell : 이름으로 함수 본문 가져 오기

분류에서Dev

이름에서 bash 함수 경로 가져 오기

분류에서Dev

적용 함수에서 열 이름 가져 오기

분류에서Dev

wp 함수에서 값 대신 옵션 이름 가져 오기

분류에서Dev

Perl 함수 : 들어오는 매개 변수의 "이름"가져 오기

분류에서Dev

함수 매개 변수로 전달 된 변수 이름 가져 오기

분류에서Dev

아약스 오류를 일으킨 함수 이름 가져 오기

분류에서Dev

javascript : 함수에 전달 된 실제 인수의 이름 가져 오기

분류에서Dev

PHP에서 함수가 호출 된 클래스 이름 가져 오기

분류에서Dev

이미지 경로에서 파일 이름 가져 오기 (함수에서)

분류에서Dev

Python : 이미 가져온 모듈에서 함수 가져 오기

분류에서Dev

코드에서 AWS Lambda 함수의 별칭 이름 가져 오기

분류에서Dev

PHP에서 텍스트 문자열로 함수 이름 목록 가져 오기

분류에서Dev

Swift를 사용한 Reflection-클래스의 함수 이름 가져 오기

분류에서Dev

함수 이름과 인수가있는 목록에서 함수의 문자열 표현 가져 오기

Related 관련 기사

  1. 1

    javascript-함수를 통해 함수 이름 가져 오기

  2. 2

    함수 이름 및 인수 가져 오기

  3. 3

    목록 파이썬에서 함수 이름 가져 오기

  4. 4

    Ruby : 변수 이름 가져 오기

  5. 5

    Haskell : 호출자 함수 이름 가져 오기

  6. 6

    Clojure에서 호출 함수 이름 가져 오기

  7. 7

    자바 스크립트에서 함수 이름 가져 오기

  8. 8

    mocha의 afterEach 함수에서 테스트 이름 가져 오기

  9. 9

    함수 내에서 개체 이름 가져 오기

  10. 10

    자체 내에서 클래스 함수 이름 가져 오기

  11. 11

    Javascript 함수에서 MVC 컨트롤러 이름 가져 오기

  12. 12

    함수 내에서 폴더 이름 가져 오기

  13. 13

    jQuery에서 함수 이름 가져 오기

  14. 14

    주소로 함수 이름 가져 오기

  15. 15

    Shell : 이름으로 함수 본문 가져 오기

  16. 16

    이름에서 bash 함수 경로 가져 오기

  17. 17

    적용 함수에서 열 이름 가져 오기

  18. 18

    wp 함수에서 값 대신 옵션 이름 가져 오기

  19. 19

    Perl 함수 : 들어오는 매개 변수의 "이름"가져 오기

  20. 20

    함수 매개 변수로 전달 된 변수 이름 가져 오기

  21. 21

    아약스 오류를 일으킨 함수 이름 가져 오기

  22. 22

    javascript : 함수에 전달 된 실제 인수의 이름 가져 오기

  23. 23

    PHP에서 함수가 호출 된 클래스 이름 가져 오기

  24. 24

    이미지 경로에서 파일 이름 가져 오기 (함수에서)

  25. 25

    Python : 이미 가져온 모듈에서 함수 가져 오기

  26. 26

    코드에서 AWS Lambda 함수의 별칭 이름 가져 오기

  27. 27

    PHP에서 텍스트 문자열로 함수 이름 목록 가져 오기

  28. 28

    Swift를 사용한 Reflection-클래스의 함수 이름 가져 오기

  29. 29

    함수 이름과 인수가있는 목록에서 함수의 문자열 표현 가져 오기

뜨겁다태그

보관