2014-09-10 1 views
0

데이터베이스의 레코드를 업데이트하는 동안 "unknown column 'newTags'"오류가 발생합니다.Joomla 3 알 수없는 열 'newTags'

업데이트는 Joomlas Backend의 고전적인 저장/업데이트 절차입니다. 전에 편집을 위해 목록보기에서 항목을 선택하고 편집보기에 항목을 저장합니다. 다른 모든 모델/테이블과의 차이점은 '태그'라는 열이 있다는 것입니다.

레코드를 업데이트하는 동안 시스템은 모든 값을 올바른 값으로 업데이트하려고합니다. 그러나 결국 시스템은 update 문에 'newTags'라는 새로운 열을 넣고 'tags'열과 같은 값을 삽입하려고 시도합니다. 여기서 업데이트 프로 시저가 "unknown column 'newTags'"오류로 실패합니다. 'newTags'열이 없기 때문에 이것이 맞을 것입니다.

여기에 무슨 일이 일어나고 있습니까?

업데이트 : 저장을 위해 배열을 바인딩하기 전에 Joomla가 데이터 배열을 검사합니다. 관리자 레거시 모델은 'tags'라는 열이 있는지 확인하고 'tags'라는 열이있는 경우 'newTags'열을 $ 테이블에 추가하고 'tags'열의 값으로 채 웁니다. 당신은 라인 1059에/도서관/기존/모델/관리자에서 찾을 수 있습니다 :이 나중에 오류가 발생합니다 동안,

if ((!empty($data['tags']) && $data['tags'][0] != '')) 
     { 
      $table->newTags = $data['tags']; 
     } 

가 왜 줌라가 Tableitem에 새 열 'newTags'를 추가 않습니다 그것 때문에 이 새로운 '가상'열을 저장할 수 없습니까?

+0

내가보기에 Joomla 3.1이 맞습니까? – rockinfresh

+0

Joomla 버전 3.3.3 – Perino

답변

0

"administrator \ components \ com_componentname"디렉토리로 이동하고 "tables"라는 디렉토리가 있으면 엽니 다.

테이블과 관련된 파일을 찾으십시오 (일반적으로 같은 이름 임).

php 파일을 열고 "tags"대신 "newTags"라는 속성이 있는지 확인하십시오.

+0

아니요, "newTags"라는 속성이 없습니다 – Perino

+0

구성 요소 이름은 무엇입니까? 이 구성 요소의 모델을 디버깅해야한다고 생각합니다. – MOWebCreation

+0

그것은 맞춤 구성 요소입니다. 이미이 문제를 디버깅하려고했습니다. 그러나 기존 데이터베이스 레코드를 업데이트하는 동안 시스템에서 새 열을 추가 할 위치를 찾을 수 없습니다. Joomla 3.1과 그 새로운 태그 기능으로 계속 변화가 있었던 것 같습니다. – Perino

0

아래 양식 필드 정의에이 오류가 표시됩니다.

<field 
    name="tags" 
    type="tag" 
    labelclass="control-label" 
    label="JTAG" 
    description="JTAG_DESC" 
    class="inputbox span12 small" 
    custom="deny" 
    multiple="false" 
    mode="nested" 
/> 

문제 일으키는 = "FALSE"배수 $ 테이블 -> newTags 라인 1,059 /libraries/model/legacy/admin.php에서 설정 될 :

if ((!empty($data['tags']) && $data['tags'][0] != '')) 
{ 
    $table->newTags = $data['tags']; 
} 

해결책 : 년 필드 정의는 multiple = "true"이므로 $ data [ 'tags']는 배열로 전달되므로 필드는 직접 바인딩되지 않거나 열로 해석 될 수 없습니다. 이렇게하면 문제가 해결되지만 선택 사항을 하나의 태그로 제한하려는 경우에는 도움이되지 않습니다.