문제

인증이 필요한 CodeIgniter를 사용하여 웹앱을 작성 중입니다.모든 인증을 처리하는 모델을 만들었습니다.그러나 다른 모델 내부에서 이 인증 모델에 액세스하는 방법을 찾을 수 없습니다.다른 모드 내부에서 모델에 액세스하는 방법이 있습니까, 아니면 CodeIgniter 내부에서 인증을 처리하는 더 나은 방법이 있습니까?

도움이 되었습니까?

해결책

일반적으로 객체 내부에 객체를 생성하고 싶지는 않습니다.이는 나쁜 습관입니다. 대신 명확한 API를 작성하고 모델에 모델을 삽입하세요.

<?php
// in your controller
$model1 = new Model1();
$model2 = new Model2();
$model2->setWhatever($model1);
?>

다른 팁

아마도 이 문제를 다른 방법으로 해결해야 할 수도 있지만 모델 내부에 모델을 로드할 수 있는 것 같습니다.보다 CodeIgniter 포럼 토론을 위해.

class SomeModel extends Model
{
  function doSomething($foo)
  {
    $CI =& get_instance();
    $CI->load->model('SomeOtherModel','NiceName',true);

    // use $CI instead of $this to query the other models
    $CI->NiceName->doSomethingElse();
  }
}

또한 객체 내부에 객체를 생성해서는 안 된다는 Till의 말을 이해하지 못합니다.물론 그래야 합니다!객체를 인수로 보내는 것은 나에게 훨씬 덜 명확해 보입니다.

모델에서 인증을 처리하지 마세요.데이터베이스나 LDAP 등과 인터페이스하려면 모델만 사용하십시오.

인증 및 권한 부여를 관리하는 데 사용하는 인증 라이브러리를 만들었습니다.컨트롤러에서 이와 같은 라이브러리에 액세스할 수 있습니다.

이제 새로운 CodeIgniter를 사용하면 모델 내에서 모델을 로드할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top