백엔드 개발 PHP 튜토리얼 thinkPHP 프레임워크의 자동 채우기 원리 및 분석에 대해

thinkPHP 프레임워크의 자동 채우기 원리 및 분석에 대해

Jun 19, 2018 am 10:36 AM
thinkphp 프레임워크 자동완성

이 글에서는 thinkPHP 프레임워크 자동 채우기를 주로 소개합니다. thinkPHP 프레임워크 자동 채우기의 원리, 사용 방법 및 관련 동작 주의 사항을 예제 형식으로 자세히 분석합니다. 필요한 친구들이 참고할 수 있습니다.

이 글은 thinkPHP를 분석합니다. 예제를 이용한 프레임워크 자동 채우기. 참고를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

thinkphp에는 필드를 자동으로 채우는 방법이 있습니다

채우기 규칙은 다음과 같습니다

array(
   array(完成字段1,完成规则,[完成条件,附加规则]),
   array(完成字段2,完成规则,[完成条件,附加规则]),
   ......
);
로그인 후 복사

참고: 소스를 연구한 후 코드에서 실제로 4번째 매개변수가 있는 것을 발견했습니다. 이 매개변수는 매개변수를 함수나 콜백 메소드에 전달하는 데 사용됩니다. 매개변수 1은 기본적으로 필드 값 로 설정됩니다. 예:

array('mobile','trim',3,'function',参数2,参数3'),
로그인 후 복사

결제 동적 및 정적 확인

모델 클래스의 정적 검증

모델의 자동 검증 규칙이 미리 정의되어 있으며 create 메소드를 사용한 후 자동으로 검증됩니다. create方法后会自动去验证。

以下是官方的例子

1.首先在模型中定义好验证的规则

namespace Home\Model;
use Think\Model;
class UserModel extends Model{
   protected $_auto = array (
     array('status','1'), // 新增的时候把status字段设置为1
     array('password','md5',3,'function') , // 对password字段在新增和编辑的时候使md5函数处理
     array('name','getName',3,'callback'), // 对name字段在新增和编辑的时候回调getName方法
     array('update_time','time',2,'function'), // 对update_time字段在更新的时候写入当前时间戳
   );
}
로그인 후 복사

2.在调用的时候用create方法会自动进行填充

$User = D("User"); // 实例化User对象
if (!$User->create()){ // 创建数据对象
   // 如果创建失败 表示验证没有通过 输出错误提示信息
   exit($User->getError());
}else{
   // 验证通过 写入新增数据
   $User->add();
}
로그인 후 복사

动态验证

以下是官方的例子

$rules = array (
  array('status','1'), // 新增的时候把status字段设置为1
  array('password','md5',3,'function') , // 对password字段在新增和编辑的时候使md5函数处理
  array('update_time','time',2,'function'), // 对update_time字段在更新的时候写入当前时间戳
);
$User = M('User');
$User->auto($rules)->create();
$User->add();
로그인 후 복사

下面是核心的代码分析:

create方法调用后会调用autoOperation

다음은 공식 예시입니다

1. 먼저 모델에 검증 규칙을 정의하세요

/**
 * 自动表单处理
 * @access public
 * @param array $data 创建数据
 * @param string $type 创建类型
 * @return mixed
 */
private function autoOperation(&$data,$type) {
  if(!empty($this->options['auto'])) {
    $_auto  =  $this->options['auto'];
    unset($this->options['auto']);
  }elseif(!empty($this->_auto)){
    $_auto  =  $this->_auto;
  }
  // 自动填充
  if(isset($_auto)) {
    foreach ($_auto as $auto){
      // 填充因子定义格式
      // array('field','填充内容','填充条件','附加规则',[额外参数])
      if(empty($auto[2])) $auto[2] = self::MODEL_INSERT; // 默认为新增的时候自动填充
      //这里的判断是关键,$type为当前的操作状态,值为1表示是插入,值为2表示是更新
      //如果当前的$type状态值等于设置的值$auto[2]或者$auto[2]的值为3,代表需要填充
      if( $type == $auto[2] || $auto[2] == self::MODEL_BOTH) {
        if(empty($auto[3])) $auto[3] = 'string';
        switch(trim($auto[3])) {
          case 'function':  // 使用函数进行填充 字段的值作为参数
          case 'callback': // 使用回调方法
            $args = isset($auto[4])?(array)$auto[4]:array();
            if(isset($data[$auto[0]])) {
              array_unshift($args,$data[$auto[0]]);
            }
            if('function'==$auto[3]) {
              $data[$auto[0]] = call_user_func_array($auto[1], $args);
            }else{
              $data[$auto[0]] = call_user_func_array(array(&$this,$auto[1]), $args);
            }
            break;
          case 'field':  // 用其它字段的值进行填充
            $data[$auto[0]] = $data[$auto[1]];
            break;
          case 'ignore': // 为空忽略
            if($auto[1]===$data[$auto[0]])
              unset($data[$auto[0]]);
            break;
          case 'string':
          default: // 默认作为字符串填充
            $data[$auto[0]] = $auto[1];
        }
        if(isset($data[$auto[0]]) && false === $data[$auto[0]] )  unset($data[$auto[0]]);
      }
    }
  }
  return $data;
}
로그인 후 복사

2. 호출 시 create 메소드를 사용하여 자동으로 채워주세요

rrreee

동적 검증

공식 예시는 다음과 같습니다

rrreee

핵심 코드 분석은 다음과 같습니다.

create 메소드 호출 후 autoOperation code> 메소드는 다음과 같이 호출됩니다

rrreee🎜🎜🎜🎜🎜위 내용은 모두의 학습에 도움이 되기를 바랍니다. 웹사이트! 🎜🎜관련 권장사항: 🎜🎜🎜스마트 루프 중첩 사용에 대해🎜🎜🎜🎜🎜PHP에서 구성을 컴파일할 때 발생하는 일반적인 오류에 대해🎜🎜🎜🎜🎜PHP에서 정적 변수 및 정적 정적 변수 사용 분석에 대해🎜🎜🎜🎜 🎜🎜🎜🎜🎜

위 내용은 thinkPHP 프레임워크의 자동 채우기 원리 및 분석에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 양식에서 자동 완성 및 자동 완성을 처리하는 방법 PHP 양식에서 자동 완성 및 자동 완성을 처리하는 방법 Aug 11, 2023 pm 06:39 PM

PHP 양식에서 자동 완성 및 자동 완성을 처리하는 방법 인터넷이 발전함에 따라 웹 사이트 작업을 단순화하기 위해 자동 완성 및 자동 완성 기능에 점점 더 의존하는 사람들이 늘어나고 있습니다. PHP 양식에서 이러한 기능을 구현하는 것은 복잡하지 않습니다. 이 기사에서는 PHP를 사용하여 양식의 자동 채우기 및 자동 완성을 처리하는 방법을 간략하게 소개합니다. 시작하기 전에 자동 완성과 자동 완성이 무엇인지 명확히 해야 합니다. 자동 채우기는 사용자의 이전 입력 또는 기록을 기반으로 양식의 필드를 자동으로 채우는 것을 의미합니다. 예를 들어, 사용자가 이메일을 입력할 때

Java를 사용하여 양식 데이터 자동 채우기 및 입력 제안 구현 Java를 사용하여 양식 데이터 자동 채우기 및 입력 제안 구현 Aug 07, 2023 pm 07:05 PM

Java를 사용하여 양식 데이터 자동 채우기 및 입력 제안 구현 최근 몇 년간 인터넷의 발달로 양식 데이터를 채우는 것이 우리 일상생활의 일부가 되었습니다. 그러나 많은 양의 양식 데이터를 입력하면 특히 반복적으로 데이터를 입력할 때 사용자에게 문제가 발생하는 경우가 많습니다. 사용자의 채우기 효율성과 경험을 향상시키기 위해 Java 언어를 사용하여 양식 데이터 자동 채우기 및 입력 제안을 구현할 수 있습니다. 이 기사에서는 Java를 사용하여 이 기능을 구현하는 방법을 소개하고 참조용 코드 예제를 제공합니다. 먼저, 우리는 필요합니다

PHP는 ThinkPHP6 프레임워크를 어떻게 사용합니까? PHP는 ThinkPHP6 프레임워크를 어떻게 사용합니까? May 31, 2023 pm 03:01 PM

웹 개발이 계속 발전함에 따라 개발자는 애플리케이션의 품질을 향상시키면서 시간과 노력을 절약하기 위해 몇 가지 실용적인 도구와 프레임워크를 사용해야 합니다. ThinkPHP는 개발을 크게 단순화하고 효율성을 높이는 인기 있는 PHP 프레임워크입니다. 이 기사에서는 최신 버전의 ThinkPHP6 프레임워크를 사용하는 방법을 알아봅니다. 환경 요구 사항 먼저 시스템이 다음 요구 사항을 충족하는지 확인해야 합니다. PHP 버전 7.1 이상 MySQL 버전 5.5 이상 Composer는

PHP의 양식 자동 완성 기술 PHP의 양식 자동 완성 기술 May 24, 2023 am 09:31 AM

인터넷의 지속적인 발전으로 양식은 일상적인 웹사이트에서 사용되는 기능 중 하나가 되었습니다. 사용자가 양식을 작성하도록 하는 것은 의심할 여지 없이 지루한 작업이므로 프로세스를 단순화하려면 몇 가지 트릭을 사용해야 합니다. 이 기사에서는 PHP에서 양식 자동 완성을 구현하는 기술을 소개합니다. 1. 기본값 사용 양식의 기본값을 설정할 때 양식 태그의 "value" 속성을 사용하여 지정할 수 있습니다. 예는 다음과 같습니다. <inputtype="text"name=&q

PHP의 ThinkPHP 프레임워크 가이드 PHP의 ThinkPHP 프레임워크 가이드 May 21, 2023 am 08:51 AM

ThinkPHP는 잘 알려진 PHP 오픈 소스 프레임워크로 효율성, 단순성 및 사용 용이성이 특징이며 대규모 웹 애플리케이션을 빠르게 구축할 수 있습니다. 이번 글에서는 ThinkPHP 프레임워크의 사용법과 주의사항을 소개하겠습니다. 1. ThinkPHP 프레임워크 설치 1. ThinkPHP 프레임워크를 다운로드합니다. 공식 홈페이지(http://www.thinkphp.cn/)에서 ThinkPHP 압축 패키지를 다운로드하여 압축을 풀 수 있습니다. Composer를 통해서도 설치할 수 있습니다.

개발 제안: RBAC 권한 관리를 위해 ThinkPHP 프레임워크를 사용하는 방법 개발 제안: RBAC 권한 관리를 위해 ThinkPHP 프레임워크를 사용하는 방법 Nov 22, 2023 pm 08:02 PM

"RBAC 권한 관리를 위한 ThinkPHP 프레임워크 사용을 위한 개발 제안" 인터넷이 발전함에 따라 시스템의 보안과 제어 가능성을 보장하기 위해 권한 관리 기능을 구현해야 하는 웹 애플리케이션이 점점 더 많아지고 있습니다. 성숙한 권한 관리 모델인 RBAC(Role-BasedAccessControl, 역할 기반 액세스 제어)는 실제 개발에서 널리 사용되었습니다. ThinkPHP는 풍부한 기능과 유연한 확장을 제공하는 인기 있는 PHP 프레임워크입니다.

PHP 크롤러를 사용하여 자동으로 양식을 채우고 데이터를 제출하는 방법은 무엇입니까? PHP 크롤러를 사용하여 자동으로 양식을 채우고 데이터를 제출하는 방법은 무엇입니까? Aug 08, 2023 pm 12:49 PM

PHP 크롤러를 사용하여 자동으로 양식을 채우고 데이터를 제출하는 방법은 무엇입니까? 인터넷이 발전함에 따라 웹 페이지에서 데이터를 얻거나 자동으로 양식을 작성하고 데이터를 제출해야 하는 필요성이 점점 더 커지고 있습니다. 강력한 서버측 언어인 PHP는 이러한 기능을 구현하기 위한 수많은 도구와 클래스 라이브러리를 제공합니다. 이 기사에서는 PHP에서 크롤러를 사용하여 자동으로 양식을 채우고 데이터를 제출하는 방법을 설명합니다. 먼저 웹 페이지 데이터를 얻고 제출하려면 PHP의 컬 라이브러리를 사용해야 합니다. 컬 라이브러리는 강력하다

Firefox에서 계정 비밀번호를 저장한 후 자동으로 입력할 수 없는 문제를 해결하는 방법 Firefox에서 계정 비밀번호를 저장한 후 자동으로 입력할 수 없는 문제를 해결하는 방법 Jan 29, 2024 pm 07:30 PM

Firefox가 계정 비밀번호를 저장한 후 자동으로 입력할 수 없으면 어떻게 해야 합니까? 계정 비밀번호를 저장하도록 선택했지만 자동으로 입력할 수 없으면 어떻게 해야 합니까? Firefox를 사용하여 계정과 비밀번호에 로그인하면 브라우저에서 저장할지 여부를 묻는 메시지가 표시됩니다. 저장을 선택했지만 다음에 브라우저를 열면 계정과 비밀번호가 자동으로 입력되지 않습니다. 이를 해결하는 방법은 다음과 같습니다. Firefox에서 계정 비밀번호를 저장한 후 자동으로 입력할 수 없는 문제에 대한 해결 방법을 정리했습니다. 그렇지 않은 경우 아래를 따르세요. Firefox가 계정 비밀번호를 저장한 후 자동으로 입력할 수 없으면 어떻게 해야 합니까? 1. Firefox를 열고 브라우저 오른쪽 상단에 있는 "메뉴 열기" 아이콘을 클릭한 후 아래 메뉴 목록에서 "옵션"을 클릭하여 엽니다. 브라우저 옵션 패널. 2. 불 속에서

See all articles