>  기사  >  백엔드 개발  >  CodeIgniter 연구 노트 3: CI 컨트롤러 및 모델 확장

CodeIgniter 연구 노트 3: CI 컨트롤러 및 모델 확장

WBOY
WBOY원래의
2016-08-08 09:22:49857검색

1. CI에서 컨트롤러 확장

때로는 로그인, 권한 확인 등 CI에서 컨트롤러에 대한 통합 작업을 수행해야 하는 경우가 있습니다. 이는 CI 컨트롤러를 확장하면 가능합니다.

CI 컨트롤러를 확장하려면 application/core 폴더의 CI_Controller 클래스에서 상속된 MY_Controller 클래스를 생성한 다음 이 클래스에 필요한 로직을 구현하기만 하면 됩니다.

위 문장과 관련하여 설명해야 할 두 가지 사항이 있습니다.

1. 왜 application/core 폴더에 있습니까: 기본 클래스 CI_Controller가 system/core에 있기 때문입니다. 폴더는 시스템과 일치해야 합니다.

2. 확장 컨트롤러의 접두사는 왜 MY_인가요? 이 접두사는 application/config/config.php에 정의되어 있습니다.

<span>$config</span>['subclass_prefix'] = 'MY_';

이 두 곳만 일치시키면 됩니다.

2. 모델

예제 application/models/user_model.php:

<?<span>php
    </span><span>/*</span><span>*
    * User_model
    </span><span>*/</span><span>class</span> User_model <span>extends</span><span> CI_Model{

        </span><span>//</span><span>return all users</span><span>public</span><span>function</span><span> getAll() {
            </span><span>$res</span> = <span>$this</span> -> db -> get('test'<span>);
            </span><span>return</span><span>$res</span> -><span> result();
        }
    }</span>

참고:

1. 파일 이름은 모두 소문자

2. 클래스 이름의 첫 글자는 대문자

3. 슈퍼 객체의 속성은 모델에서 사용할 수 있습니다

4. 다른 클래스 이름과의 충돌을 방지하기 위해 접미사로 _model 사용을 권장합니다.

사용 예:

<span>public</span><span>function</span><span> index() {
    </span><span>//</span><span>load model</span><span>$this</span> -> load -> model('User_model'<span>);
    </span><span>$usermodel</span> = <span>$this</span> -> User_model -><span> getAll();

    </span><span>//</span><span>别名</span><span>$this</span> -> load -> model('User_model', 'user'<span>);
    </span><span>$usermodel</span> = <span>$this</span> -> user -><span> getAll();
    </span><span>var_dump</span>(<span>$usermodel</span><span>);
}</span>

모델은 주로 프로젝트를 표준화하는 데 사용됩니다. 구조.

위 내용은 CodeIgniter 연구 노트 3: 내용의 측면을 포함하여 CI의 컨트롤러 및 모델 확장을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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