2013-02-09 3 views
0

에서 알 수없는 열이 나는이 모델 파일이 있습니다. 이 같은CakePHP의 모델,를 Fieldlist

SQLSTATE[42S22]: 
    Column not found: 1054 Unknown column 'Myfan.name' in 'field list' 

내 테이블 구조 : MySQL의에서

$Data=$this->Myfan->find('all', 
      array(
       'limit' => 10 
     )); 

나는이 오류가

CREATE TABLE IF NOT EXISTS `myfans` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `screen_name` varchar(50) CHARACTER SET utf8 NOT NULL, 
    `age` int(20) DEFAULT NULL, 
    `color` int(10) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=705314 ; 

나는 /httpdocs/app/tmp/cache/models 폴더에서 myapp_cake_model_default_mydatabase_myfans 파일을 제거했습니다. 케이크가 자동으로 파일을 만들었지 만 여전히 같은 오류가 발생합니다. 이 문제를 어떻게 해결할 수 있습니까?

나는 지금도 내 테이블 안에 "이름"필드가 없습니다. 그러나 나는 전에 있었는지 안했는지 확신 할 수 없다. Cake는 그 분야를 어디에서 확인합니까?

편집 : 나는이에 쿼리를 변경할 때이 같은 오류를 얻을 : 다른 표시 필드를 사용하는 경우

$Data=$this->Myfan->find('all', array(
     'conditions' => array('Myfan.screen_name' => $screenname), 
     'order' => array('Myfan.id DESC') 
    )); 
또한

내 AppModel이

// AppModel.php 
App::uses('Model', 'Model'); 

class AppModel extends Model { 
} 
+0

모델의 * 실제 * 코드입니까? 유효성 검사 규칙, 관계, 가상 필드가 있습니까? – thaJeztah

+0

@thaJeztah 실제 코드입니다. 더 이상 관계가 없습니다. – trante

+0

질문에 오류를 생성하는 전체 쿼리를 추가 할 수 있습니까? (편집을 사용하여 주석으로 추가하지 마십시오.) – thaJeztah

답변

1

, 당신은 말할 필요 또한 모델 :

$this->displayField = 'screen_name'; 

"name"및 "ti tle "케이크는 자동 감지 할 수 있습니다.

+0

+1 아마도 이것은 잘못된 것입니다. 또는 디스플레이 필드가 필요없는 경우 false로 설정할 수 있습니다. – Angad

+0

이제 모델 쿼리에 필드 키를 추가하려고했는데 다음과 같이 작동합니다 :''''$ Data = $ this-> Myfan-> find ('all', array ('fields'=> array ('Myfan.screen_name'), 'limit'=> 10));''''그러나 모든 필드를 가져와야합니다. 가능한가? – trante

+0

Afma displayField는 find ('list')에만 사용되고 find ('all')에는 사용되지 않습니다. * no * displayField를 명시 적으로 설정하면 오류가 발생하지 않습니다 (테이블의 'name'필드가 필요하지 않음 *) * – thaJeztah