我有一个名为 myMenu.php
的库文件
<?php
class myMenu{
function show_menu()
{
$obj = & get_instance();
$obj->load->helper('url');
$menu = "<ul>";
$menu .= "<li>";
$menu .= anchor('books/index','List of books');
$menu .= "</li>";
$menu .= "<li>";
$menu .= anchor('books/input','Books entry');
$menu .= "</li>";
$menu .= "</ul>";
return $menu;
}
}
现在我在我的 Controller
books.php
中加载了这个库function index()
{
$this->load->library('myMenu');
$menu = new myMenu;
$data['menu'] = $menu->show_menu();
$this->load->view('main_view',$data);
}
但是页面显示错误
An error occurred : Unable to load the requested class: mymenu
。为什么此错误将类名显示为 mymenu
(全部为小写),其中我在 Controller 中编写了 myMenu
最佳答案
两个问题:
1)您的命名约定是错误的。
在 CodeIgniter 中,库必须以大写字母开头。
类名和文件名都必须以大写字母开头,并且必须匹配。
请参阅下面的文档。
https://www.codeigniter.com/user_guide/general/creating_libraries.html
2) 你不应该用 new
实例化 myMenu 。
访问您加载的库时,这几乎是通常的方式:
$this->load->library('mymenu'); // when calling the loader, the case doesn't matter
$data['menu'] = $this->mymenu->show_menu(); //'mymenu' is the lowercase of the class name
关于php - Codeigniter 无法加载库类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14300311/