3

我在使用 CodeIgniter 时遇到问题。我已经检查了互联网上所有可能的解决方案,似乎对我的情况没有任何帮助。我不是专业人士,这是我第一次使用 CodeIgniter,所以不要对我苛刻。

路线.php:

$route['default_controller'] = "page";
$route['404_override'] = '';

$route['(:num)'] = "page/index/$1";

页面.php:

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

class Page extends CI_Controller {

    public function index($id=null) {

        $this->load->model('Image','',TRUE);
        $this->load->model('Banner','',TRUE);
        $image = $this->Image->getImageById($id);
        if (empty($image)) {
            show_404();
        }
        //db table `banner` always have three rows
        $banners=$this->Banner->getBanners();
        $data=array();
        $data['image']=$image;
        $data['banner']=$banners;
        $this->load->view('page_index', $data);
    }
}
4

7 回答 7

3

我已经阅读了你的问题。您在保存控制器时犯了错误。

它应该以大写形式保存,Page.php但您已保存为page.php

我想这会成功的!

于 2017-07-31T07:04:55.550 回答
2

你建造了父母吗?公共函数_construct( ) { Parent:: _construct(); }

于 2013-07-14T04:19:48.603 回答
2

如果您在 Windows 上开发了应用程序,您可能没有将 Controllers 和 Models 名称的第一个字符设置为capital character.

喜欢/controllers/home.php_/controllers/Home.php

在 Linux 上,文件名区分大小写。

注意:- 这是一个可能的问题的解决方案。可能存在配置错误、服务器和路径变量的问题。

于 2017-06-01T08:32:31.907 回答
1

这听起来不像是 Codeigniter 错误。它可能是您的网络服务器配置。您的机器上是否设置并配置了网络服务器和 php 服务器?您是否配置了一个 .htaccess 文件来替换“index.php”?

于 2013-07-13T21:01:47.547 回答
0

Thank you everyone, The problem was that i stated in page.php that if there is no images in the database it'll show 404 page:

if (empty($image)) {
    show_404();
}

I've added two images to the DB and now it works.

于 2013-07-14T08:04:15.723 回答
0

我对codeigniter也很陌生。这就是我一开始会做的事情:

  1. 自动加载数据库并配置 database.php 文件
  2. 自动加载帮助文件 'url', 'file'
  3. 配置您的基本网址“://yourhost/yourworkingfolder”(如果您在本地主机上工作)
  4. 您需要路由您的页面。转到 route.php,并给出您的默认控制器页面名称的名称,如果它看起来比您更好地完成其他任务。

如果我错了,请纠正我。我是codeigniter的新手。谢谢

于 2013-07-14T04:03:05.960 回答
0

如果您使用的是 Unix 服务器,控制器会将首字母大写

于 2018-10-26T07:19:58.097 回答