Php 卡在CodeIgniter控制器类实现中

Php 卡在CodeIgniter控制器类实现中,php,oop,codeigniter,Php,Oop,Codeigniter,我正在使用CodeIgniter重新编码我的站点。这是我第一次使用MVC或任何其他类型的开发模式。我正在使用CI网站的视频教程制作一个游乐场,并熟悉系统的协议 我刚刚遇到了第一个问题,它与父类有关 我在第二个教程中尝试创建一个博客,并有以下内容: <?php class Test extends CI_Controller { function Test() { parent::CI_Controller(); $this->lo

我正在使用CodeIgniter重新编码我的站点。这是我第一次使用MVC或任何其他类型的开发模式。我正在使用CI网站的视频教程制作一个游乐场,并熟悉系统的协议

我刚刚遇到了第一个问题,它与父类有关

我在第二个教程中尝试创建一个博客,并有以下内容:

<?php

class Test extends CI_Controller {

    function Test()
    {
        parent::CI_Controller();

        $this->load->scaffolding('entries');
    }

    function index() 
    {
        $data['muck'] = 'test test test';
        $data['kookoo'] = 'howdy howdy hi';
        $data['hi'] = 'holla';
        $data['yo'] = 'fa la la';
        $data['zoom'] = '1234';
        $data['array'] = array('hi','howdy','hey','sup');
        $this->load->view('test_view', $data);
    }

}

?>
我已经搜索过了,真的不知道为什么它不能定义它


提前谢谢

您混淆了不同版本的内容,1.7版本主要关注PHP4风格的类构造(使用与类同名的方法作为构造函数,而不是PHP5中提供的专用magic方法_construct())

此外,请注意,最新版本中没有脚手架。我想你没有说你用的是哪一个。如果您使用的是旧版本,1)使用最新版本:)2)父类只是控制器

应该是这样的

class Test extends CI_Controller {

     function __construct()
     {
         parent::__construct();

         //$this->load->scaffolding('entries');
     }

     function Test()
     {
      // this will call a method name test, so maps to a URL like Test/test

     }

}
请注意,不需要扩展父控制器,当然,除非您希望“自动加载”库以使其可用于所有方法

CI以其出色且简单的文档而闻名,因此,每当您使用网上的教程时,尤其是有点旧的教程(用互联网术语来说),只要您有疑问或问题,就要养成访问的习惯(该教程也随安装文件一起提供,用于本地浏览)

例如,查看页面,您很快就会发现代码片段(以及教程,从今天开始)有什么问题

更新:

在routes中,您正在设置映射到控制器(/method)的route。 引用变更日志:

版本2.0.0

发布日期:2011年1月28日Hg标签:v2.0.0

General changes

PHP 4 support is removed. CodeIgniter now requires PHP 5.1.6.
Scaffolding, having been deprecated for a number of versions, has been removed.
所以我不知道你现在说的脚手架是什么意思。查看您的路径,CI需要一个名为“scaffolding_trigger”的控制器,该控制器必须重新路由到控制器“scaffolding”。如果存在这些错误中的任何一个,则会出现404错误。
请选择一个版本并坚持下去,不要混用!不要依赖于教程,它们并不总是最新的变化。

您混淆了不同版本的内容,1.7版本主要关注PHP4样式的类构造(使用与类作为构造函数同名的方法,而不是PHP5中提供的专用magic方法_construct())

此外,请注意,最新版本中没有脚手架。我想你没有说你用的是哪一个。如果您使用的是旧版本,1)使用最新版本:)2)父类只是控制器

应该是这样的

class Test extends CI_Controller {

     function __construct()
     {
         parent::__construct();

         //$this->load->scaffolding('entries');
     }

     function Test()
     {
      // this will call a method name test, so maps to a URL like Test/test

     }

}
请注意,不需要扩展父控制器,当然,除非您希望“自动加载”库以使其可用于所有方法

CI以其出色且简单的文档而闻名,因此,每当您使用网上的教程时,尤其是有点旧的教程(用互联网术语来说),只要您有疑问或问题,就要养成访问的习惯(该教程也随安装文件一起提供,用于本地浏览)

例如,查看页面,您很快就会发现代码片段(以及教程,从今天开始)有什么问题

更新:

在routes中,您正在设置映射到控制器(/method)的route。 引用变更日志:

版本2.0.0

发布日期:2011年1月28日Hg标签:v2.0.0

General changes

PHP 4 support is removed. CodeIgniter now requires PHP 5.1.6.
Scaffolding, having been deprecated for a number of versions, has been removed.
所以我不知道你现在说的脚手架是什么意思。查看您的路径,CI需要一个名为“scaffolding_trigger”的控制器,该控制器必须重新路由到控制器“scaffolding”。如果存在这些错误中的任何一个,则会出现404错误。
请选择一个版本并坚持下去,不要混用!不要依赖教程,它们并不总是最新的变化。

fyi-我在routes.php$route['scaffolding\u trigger']=“scaffolding”中创建了scaffolding;现在它给了我一个404未发现错误,这比以前更好:)仅供参考-我在routes.php$route['scaffolding\u trigger']=“scaffolding”中创建了scaffolding;现在它给了我一个404找不到的错误,比以前好多了:)