我该如何解决“找不到对象!” CodeIgniter-4错误?

时间:2020-04-13 09:44:46

标签: php codeigniter xampp codeigniter-4

我已经检查了控制器名称和方法名称,但仍然显示“在此服务器上找不到请求的URL。如果手动输入URL,请检查拼写,然后重试。”

我尝试了下面给出的该网址,并收到此错误:

http://localhost/framework/index.php/helloworld
http://localhost/framework/helloworld/index

控制器名称下的文件为:Helloworld.php

<?php namespace App\Controllers;
use CodeIgniter\Controller;
class Helloworld extends CI_Controller
{
public function index()
{
echo 'Hello World!';
}

enter image description here

4 个答案:

答案 0 :(得分:3)

更改

class Helloworld extends CI_Controller

class Helloworld extends Controller

在CI4 CI_Controller中重命名为Controller

答案 1 :(得分:1)

如果您在不使用htaccess的情况下尝试Codeigniter 4,则应致电

http://localhost/framework/public/helloworld

或者您应该使用此命令运行Codeigniter

php spark serve 

然后转到浏览器,检查http://localhost:8080

您应该从这里学习codeigniter 4的基础 How to Use codeigniter 4

希望对您有帮助

答案 2 :(得分:0)

请在执行以下更改后尝试-

  • 删除使用声明。
  • 将BaseController扩展为CI_Controller在CI4中不可用。
  • 返回要在屏幕上显示的内容。

    <?php namespace App\Controllers;
    
     class Helloworld extends BaseController {
       public function index() {
           return 'Hello World!';
       }
     }
    

答案 3 :(得分:0)

在大多数评论中,您指出,您要做的就是将 CI_Controller 重命名为简单的ole Controller (根据CI 4用户指南)以及您在“使用”中声明的内容。

所以你会

<?php namespace App\Controllers;

use CodeIgniter\Controller; // This is what you are "use"ing

class Helloworld extends Controller {  // And this is where you are "use"ing it
    public function index() {
        echo 'Hello World!';
    }
}

看到区别了吗?