令人沮丧的codeigniter设置运行一个简单的程序

时间:2012-03-02 17:15:10

标签: php codeigniter

我的route.php文件

$route['default_controller'] = "pxml";
$route['pxml/(:any)']="xml/pxml";
$route['404_override'] = '';

我的index.php文件

<!DOCTYPE html>
<html>
    <head>
            <title>Reading/Writing XML</title>
    </head>
    <body>
        Welcome to reading/writing XML!
        <a href="loadXML">Display</a>
    </body>
</html>

我的班级Pxml.php文件

class PXml extends CI_Controller
{
    private $pFunc;
    public function __construct()
    {
        parent::__construct();
        $this->pFunc=new PFunc();
    }
    public function index()
    {
        if(!file_exists('application/views/xml/index.php'))
        {
            show_404();
        }
        $this->load->view('xml/index');
    }
    public function loadXML()
    {
        if(!file_exists('application/views/xml/books.php'))
        {
            show_404();
        }
        else
        {
            if(!file_exists('application/controllers/books.xml'))
            {
                show_404();
            }
            $data['xml_data']=$this->pFunc->ReadXML('books.xml');
            if($data['xml_data']!=null)
            {
                $this->load->view('xml/books',$data);
            }
            else
            {
                echo "Fail to load XML file";
            }
        }
    }
}


?>

我的books.php

<?php    
    echo <<<EOF
    <table>
        <tr>
            <th>Title</th>
            <th>Author</th>
            <th>Publisher</th>
            <th>Price at Amazon.com</th>
            <th>ISBN</th>
        </tr>
    EOF;
    foreach($xml_data as $book)
    {
        echo <<<EOF
        <tr>
            <td>{$book->title}</td>
            <td>{$book->author}</td>
            <td>{$book->publisher}</td>
            <td>{$book->amazon_price}</td>
            <td>{$book['isbn']}</td>
        </tr>
        EOF;
    }
    echo '</table>';
?>

我可以到达索引,但是当我按下显示链接时,我遇到了404错误。

另外,我在控制器中创建了一个名为xml的子文件夹来存储pxml文件。和视图中名为xml的子文件夹,用于存储所有视图文件。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

CI要求所有文件名都是小写的。

更改

Pxml.php

pxml.php

答案 1 :(得分:0)

尝试更改链接以显示为类似内容。

<a href="<?php echo site_url('pxml/loadxml')?>">Display</a>

您是否也验证了CI是否因为无法找到视图而投掷404,或者无法找到控制器本身?