您可以通过更改application/config/autoload.php文件来自动加载库。
寻找 :
$autoload['libraries'] = array();
替换为:
$autoload['libraries'] = array('calendar');
application/core要在所有页面上加载相同的日历,我建议在文件夹中构建一个父控制器。
abstract class BaseController extends CI_Controller
{
protected $data;
public function __construct()
{
parent::__construct();
$this->data = array();
$calendarData = array(
3 => 'Polska - Anglia'
);
$this->data['calendar'] = $this->calendar->generate('', '', $calendarData);
}
}
BaseController然后,您可以在所有控制器上扩展该类。
class Calendar extends BaseController {
function index()
{
$this->load->view('main/calendar', $this->data);
}
}
确保始终使用$this->data来构建类的受保护成员。
最后,您BaseController不会自动加载,您可能不想在任何地方都包含它。我建议您在自动加载或配置文件的末尾添加以下方法。
/**
* Extra autoload function. Loads core classes automatically.
* @param type $class The class to load.
*/
function __autoload($class)
{
if (strpos($class, 'CI_') !== 0)
{
if (file_exists($file = APPPATH . 'core/' . $class . EXT))
{
include $file;
}
}
}
这将允许您自动加载application/core文件夹中的任何类。此解决方案可能看起来很复杂,但一旦设置完成。您可以添加BaseController适用于所有页面的功能,例如页眉和页脚。
希望这可以帮助!