>  기사  >  백엔드 개발  >  thinkPHP 자동검증, 자동추가, 폼오류 문제에 대한 자세한 설명

thinkPHP 자동검증, 자동추가, 폼오류 문제에 대한 자세한 설명

墨辰丷
墨辰丷원래의
2018-05-31 16:20:541187검색

이 글은 주로 thinkPHP 자동 확인, 자동 추가, 폼 오류 문제 분석을 소개하고 있으며, thinkPHP 자동 완성 메커니즘의 관련 사용법과 주의사항도 케이스 형태로 분석해 놓았습니다.

I 최근에 다른 프로젝트를 진행하면서 thinkphp를 사용하여 검증을 작성하고 싶었는데 며칠 동안 울었습니다. 처음에는 토큰 오류였는데 자동으로 추가된 내용이 무효화되었습니다.

테스트하고 검색해보니 create() 메소드에는 원래 두 개의 매개변수가 있다는 것을 알게 되었습니다.

첫 번째 매개변수는 모두가 알고 있는 데이터 매개변수이고, 두 번째 매개변수는 숨겨진 $type 매개변수입니다. 매개변수는 무언가를 제어하는 ​​데 사용됩니까? ?

코드 복사 코드는 다음과 같습니다.

//$type = $type?$type!empty($data[$this->getPk()])?self::MODEL_UPDATE:self:: MODEL_INSERT);

이 문장을 곰곰이 생각해 본 결과, 이 숨겨진 매개변수가 이 데이터베이스의 특정 작업을 나타내는 데 사용된다는 것을 발견했습니다.

$type 값은 삽입 작업의 경우 1, 업데이트 작업의 경우 0이며 기본적으로 있습니다. 시스템이 자동으로 인식할 수 있으므로 이 매개변수에 값을 할당할 필요가 없습니다.

기본 키가 데이터베이스에 의해 자동으로 추가된다면 괜찮을 것입니다. 수동으로 추가하면 비극이 될 것입니다. 기본값은 데이터 작업을 업데이트하는 것이기 때문입니다.

다음은 제가 작성한 자동 완성 코드입니다

protected $_auto = array(
array('password','sha1',1,'function'),
array('date', 'time', 1, 'function'),
);

1을 보셨나요? 1은 데이터가 삽입될 때만 함수가 실행된다는 뜻입니다. 추신: 이것 때문에 오랫동안 고민을 했습니다.

데이터를 입력하고 싶을 때 다음과 같이 쓰면 됩니다:

create($_POST,1)//【插入数据】
create($_POST,2)//【更新数据】

create 메소드에 이 작업이 삽입 작업임을 직접 알려주면 잘못된 자동 완성 타이밍과 잘못된 자동 완성 문제를 해결할 수 있습니다.

그런데 이렇게 작성하지 말라고 하면 어쩔 수 없군요. create() 함수를 사용하면 기본적으로 데이터 업데이트가 된다는 점만 기억하시면 됩니다. Model 메소드를 작성할 때.

thinkphp 자동 완성 그림

보세요,

protected $_auto = array(
array('password','sha1',2,'function'),
array('date', 'time', 2, 'function'), //把1换成2就好了。
);

문제는 해결될 수 있습니다.

요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장 사항:

php기본 작업

PHP 데이터 유형

PHP는 지정된 디렉터리에 파일이 있는지 확인

PHP 프로세스 신호 처리

위 내용은 thinkPHP 자동검증, 자동추가, 폼오류 문제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.