-3

我有一个后端控制器和其他扩展后端控制器的控制器,我试图弄清楚如何在后端控制器中设置一个变量并在扩展它的控制器中使用它。

如果我在后端控制器中设置一个作为配置值的变量,子控制器如何访问它。

编辑:

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

我正在使用 phil sturgeon 基类在我的应用程序中保持干燥方法,控制器如下所示,当我加载登录控制器时,我收到 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()
    {   

    }
}
4

1 回答 1

1

如果您的后端控制器(父级)具有可见性为公共或受保护的实例变量,则扩展后端控制器的控制器将能够使用$this关键字访问这些变量。

例子:

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

class ChildController extends ParentController {
    public function indexAction() {
        echo $this->foo;
    }
}
于 2013-01-08T20:38:10.647 回答