【发布时间】:2015-10-07 07:16:07
【问题描述】:
这是我的第一个 php 框架。我的控制器中有一个php文件,它是posts.php,但是当我尝试在localhost/codeigniter/index.php/posts运行它时,它显示错误404
应用文件夹内的.htaccess
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
自动加载.php
$autoload['libraries'] = array('database');
$autoload['helper'] = array('url');
config.php
$config['base_url'] = 'http://localhost/codeigniter/';
$config['index_page'] = 'index.php';
routes.php
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
模型文件夹中的post.php
class Post extends CI_Model{
function get_posts($num = 20, $start = 0){
//$sql = "SELECT * FROM users WHERE active=1 ORDER BY date_added DESC LIMIT 0,20;";
$this->db->select()->from('posts')->where('active', 1)->order_by('date_added', 'desc')->limit(0, 20);
$query=$this->db->get();
return $query->result_array();
}
}
控制器文件夹中的posts.php
class Posts extends CI_Controller{
function index(){
$this->load->model('post');
$data['posts'] = $this->post->get_posts();
echo "<pre>";
print_r($data['posts']);
echo "</pre>";
}
}
它应该显示一个空数组,但它显示错误 404
【问题讨论】:
-
如果您使用 Codeigniter 3.0 那么 post.php 控制器应该是 Post.php 不要在应用程序文件夹中触摸 htaccess 只在主目录中添加一个。
-
此外,由于您没有在主目录中的配置广告集 htaccess 中删除 index.php,因此您的 url 需要具有 index.php example.com/index.php/controller
-
你好,不知道你的意思,应该是这样 $this->load->model('Post'); 吗?
-
我会将发布模型重命名为 Model_post.php,因为有时 codeigniter 会混淆控制器和模型必须有文件名和类名大写的第一个字母,然后您可以使用
$this->load->model('model_post')和 @ 987654329@
标签: php codeigniter model-view-controller