2013-01-08 1 views
-3

저는 백엔드 컨트롤러와 백엔드 컨트롤러를 확장하는 다른 컨트롤러를 보유하고 있으며 백엔드 컨트롤러에서 변수를 설정하고이를 확장하는 컨트롤러에서 사용하는 방법을 알아 내려고하고 있습니다.컨트롤러 확장 및 변수 전달

백엔드 컨트롤러의 구성 값인 변수를 어떻게 설정하면 서브 컨트롤러가 액세스 할 수 있습니까?

편집 :

http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY

내 응용 프로그램과 건조 방식을 유지 필 철갑 상어 기본 클래스를 이용하고 있고 컨트롤러는 다음과 같다 내가 내 로그인 컨트롤러를로드 할 때 내가 500 오류가 발생하지만 경우 로드 된 응용 프로그램에 포함 된 CI 컨트롤러 환영을로드합니다.

로그인 컨트롤러에 액세스 할 때 500 오류가 발생하는 이유는 무엇입니까?

<?php 

if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class MY_Controller extends CI_Controller { 

    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function index() 
    { 

    } 
} 

<?php 

if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Backend_Controller extends MY_Controller 
{ 

    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function index() 
    { 

    } 
} 

<?php 

if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Login extends Backend_Controller { 

    public function __construct() 
    { 
     parent::__construct(); 
    } 

    public function index() 
    { 

    } 
} 
+0

음이 매우 모호 이잖아 ... – KingCrunch

+0

질문을 정교하게하십시오; 그 작은 세부 사항으로 당신을 도울 수 없습니다. – Westy92

+0

뭔가 추가 중입니다. –

답변

1

백엔드 컨트롤러 (부모) 백엔드 컨트롤러가 $this 키워드를 사용하여 해당 변수에 액세스 할 수 확장 공용 또는 보호 된 후 컨트롤러의 가시성 인스턴스 변수가있는 경우.

예 :

<?php 
class ParentController { 
    protected $foo = "bar"; 
} 

class ChildController extends ParentController { 
    public function indexAction() { 
     echo $this->foo; 
    } 
} 
+0

어떤 이유로이 논리를 적용 할 때 나는 단지 흰색 화면과 오류가 발생합니다. –

+0

오류가 발생하지만 PHP에서 오류를 표시하도록 구성하지 않은 것 같습니다. PHP ini 파일에서 오류 표시를 활성화 할 수 있습니다 : display_errors On error_reporting E_ALL | E_STRICT –

+0

더 많은 문제점을 설명하는 편집을했습니다. –