codeigniter设置无法通过url访问控制器

yduiuuwa  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(144)

首先,我是新的codeigniter,我没有按照步骤的文件和一些yt视频,但我似乎不能让codeigniter正常工作,这里是我的问题

1.我的设定

服务器:Xampp::本地主机
我的文件夹htdocs/crm/code files在这里
我将我的xampp 'httpd.conf'从

DocumentRoot "C:/xampp/htdocs/"
<Directory "C:/xampp/htdocs/">

DocumentRoot "C:/xampp/htdocs/crm/public/"
<Directory "C:/xampp/htdocs/crm/public/">

这样我就可以通过http://localhost/而不是http://localhost/crm/public访问代码点火器
并且我更改了app\Config\App.php的基本URL等....
当我进入localhost/时,它会显示与localhost/index.php相同的codeigniter欢迎屏幕,但当我尝试键入localhost/home时,它会显示-〉

404 - File Not Found
Can't find a route for 'get: home'.

但home是我的文件夹app\Controllers\Home.php中的控制器
home.php

<?php

namespace App\Controllers;

class Home extends BaseController
{
    public function index()
    {
        return view('welcome_message');
    }
}

它应该可以通过url访问,对吗?有人能告诉我我可能做错了什么吗?我没有正确配置什么吗?
请理解我是新的codeignter不是php,但只是框架,这是我第一次使用它,如果我需要提供更多的信息或文档,请评论,我会编辑我的Q
谢谢你,祝你有美好的一天:)

cig3rfwq

cig3rfwq1#

您需要在Codeigniter 4. app/Config/Routes.php文件中设置路由。在该文件中,您可以找到新安装的路径:

$routes->get("/", "Home::index");

您可以在此处定义更多路由,例如:

$routes->get("/hello", "Home::hello");

Home控制器中,您可能会说:

public function hello()
{
    return "Hello";
}
sshcrbum

sshcrbum2#

注:This applies only to ver4.2.1as I have not tested the other versions

第一个

您必须转到app/Config/Routes.php,然后取消注解属性setAutoRoute(false)并将其值设置为true而不是false,然后转到app/Config/Feature.php并将属性$autoRoutesImproved更改为true
如果未找到与URI匹配的已定义路由,系统将尝试在启用自动路由时将该URI与控制器和方法进行匹配。- Codeignter docs

其次

将由自动路由(已改进)执行的控制器方法需要HTTP动词(get、post、put等)前缀,如getIndex()、postCreate()。
示例:

<?php

namespace App\Controllers;

class Helloworld extends BaseController
{
    public function getIndex()
    {
        return 'Hello World!';
    }
}

请注意,这是我的经验,根据Codeignter文档,您可以在这里找到完整的文章:自动布线(已改进)和URI Routing

相关问题