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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.