2011-03-13 1 views
0

내 코드 아래에 여러 오류가 표시됩니다. 또한 mysql 오류가 있었지만 부분 배열 null 값으로 인해 오류를 이해했습니다. 나는 왜 나는 그 오류를 받고 있는지 전혀 모른다. 누군가가 수정 사항을 설명 할 수 있습니까?codeigniter 양식 여러 인수가있는 유효성 검사 콜백 함수 문제 : 정의되지 않은 오프셋 : 1

라인 (106) : $this->db->where($parts[1], $value);

코드 :

$this->form_validation->set_rules('alias','alias_exist','trim|xss_clean|callback_alias_exist_check[livestock.alias]'); 

    function alias_exist_check($value, $str) 
    { 

     $parts = explode('.', $str);  
     $this->db->from($parts[0]); 
     $this->db->where($parts[1], $value); 
     $result = $this->db->get(); 

     echo $this->db->last_query(); 
     //return ($row->count > 0) ? FALSE : TRUE; 
     //echo $table . ' ' . $column; 
    } 

오류 :

PHP는 오류가 발생했습니다

심각도 :

메시지가 나타납니다 : 오프셋 정의되지 않은 : 1

파일 이름 : 컨트롤러/validate_livestock.php

라인 번호 : (106)

PHP는 오류가

심각도가 발생했습니다 :

메시지를 경고 : 헤더 정보를 수정할 수 없습니다 - 이미가 보낸 헤더 (출력은 /home/dickschi/public_html/lsms/system/libraries/Exceptions.php:166에서 시작되었습니다.

파일 이름 : codeigniter/Common.php

줄 번호 :

356 감사,
리치

+0

콜백에 전달 된 $ str의 값은 무엇입니까? 분명히 "." 그 안에. –

+0

[livestock.alias]의 목적은 무엇입니까? –

+0

가축이 테이블이고 별칭이 열입니다. 그것들은 데이터베이스 SQL 문자열에 사용되는 값입니다. – dottedquad

답변

1

이 패치를 적용하려고 했습니까?

https://bitbucket.org/ellislab/codeigniter/issue/139/validation-callback-parameter-does-not

파일 클래스 CI_Form_validation을 포함

/system/libraries/Form_validation.php

에 대한 패치입니다. 방법 _execute() 라인 (491)에서 , 문제가 해결되지 않을 경우 알려줘

if (preg_match("/(callback_[\[\]\w]+)/", implode(' ', $rules), $match)) 

하여 라인

if (preg_match("/(callback_\w+)/", implode(' ', $rules), $match)) 

를 교체합니다.

+0

아니요, 해당 패치를 적용하지 않았습니다. CI 2.0을 사용하고 있습니다. 이 패치를 어떻게 적용합니까? – dottedquad

+0

편집 내 대답 :-) –

+0

설명하는 데 어려움을 겪어 줘서 고맙습니다. 도움에 감사드립니다.최근 2.0에 업데이트 된 문제는 내 jquery AJAX DATA에 문제가 있다는 것을 인식하지 못했습니다. 값을 존재하지 않는 요소로 설정했습니다. 이 패치는 "요소가 존재하지 않습니다"라는 문제를 수정합니까? – dottedquad

1

왜 함수에 열 이름과 테이블을 전달해야합니까? 그냥 할일 :

function alias_exist_check($value, $str) 
{ 
    $this->db->from('livestock'); 
    $this->db->where('alias', $value); 
    $result = $this->db->get(); 

    echo $this->db->last_query(); 
    //return ($row->count > 0) ? FALSE : TRUE; 
    //echo $table . ' ' . $column; 
} 
+0

함수를 사용하여 코드 재사용의 편리함을 원합니다. – dottedquad

+0

예, 별칭이 있는지 확인하는 것 이외의 다른 방법으로 'alias_exist_check'라는 기능을 사용 하시겠습니까? – danneth

+0

100 % 맞습니다. 그러나 SQL "물건"을 모달 디렉토리로 이동합니다. 별칭 이외의 것이 있는지 확인하기 때문에 앞으로 코드를 재사용 할 수있는 편리함이 필요합니다. – dottedquad