被找到但未找到的CodeIgniter控制器难倒
好吧,我承认。我是一名CI新手。我犯了一些基本的错误,我已经犯了几个小时了,找不到我的错误 我有一个名为login的控制器。它位于“我的控制器”文件夹的“资源”文件夹中。它加载一个名为login_form的视图。但对于我来说,如果我访问domain.com/resources/login或domain.com/resources/index,它将不会加载。但我可以通过一条路线到达:被找到但未找到的CodeIgniter控制器难倒,codeigniter,codeigniter-url,Codeigniter,Codeigniter Url,好吧,我承认。我是一名CI新手。我犯了一些基本的错误,我已经犯了几个小时了,找不到我的错误 我有一个名为login的控制器。它位于“我的控制器”文件夹的“资源”文件夹中。它加载一个名为login_form的视图。但对于我来说,如果我访问domain.com/resources/login或domain.com/resources/index,它将不会加载。但我可以通过一条路线到达: $route['engineering-resources/login'] = "resources/login"
$route['engineering-resources/login'] = "resources/login";
即使这样,我的表单操作也找不到。这是我的表格:
<?php
echo form_open('resources/login/validate_credentials'); //folder/controller/method. I think this is where my problem is
echo form_input('username', 'Username');
echo form_password('password', 'Password');
echo form_submit('submit', 'Login');
echo anchor('login/signup', 'Create Account');
echo form_close();
?>
索引函数在我使用路由时起作用,但在我使用上述domain.com路径时不起作用。我假设这就是它找不到validate_credentials方法的原因。我做错了什么
这里是main.php
<?php $this->load->view('includes/header.php'); ?>
<?php $this->load->view('includes/nav.php'); ?>
<?php $this->load->view($main_content); ?>
<?php $this->load->view('includes/footer.php'); ?>
这不会路由到engineering resources/login/validate\u凭证
到resources/login/validate\u凭证
你应该有这样的东西:
// not tested
$route['engineering-resources/login/(\S*)'] = "resources/login/$1";
还有一件事是,如果您使用的是路线,那么您也应该使用视图中的路线
echo form_open('engineering-resources/login/validate_credentials');
首先,在加载主视图时删除
.php
。还有,你在主视图中做什么?您似乎正在发送登录表单视图的“路径”!!控制器文件夹中的文件夹结构是什么?而且你不是在验证用户输入吗?!或者你在模型中做了什么?我将删除.php。我发布了上面的主视图。这是一种模板化方法,告诉模板将登录表单加载到模板中。文件夹结构:控制器/资源。其他类似的方法也可以。也许表单路径有问题,这就是我需要的。谢谢,索普!上面路由中的(\S*)是什么,以及$1的作用是什么?\S*
是一个正则表达式,用于匹配/login之后的任何字符串<代码>$1告诉路由将字符串附加到URL。另一个问题是,如果我想重定向资源文件夹、登录控制器、成员区域方法,我是否重定向('resources/login/members\u area')?您应该重定向到工程资源/登录/成员\u区域
// not tested
$route['engineering-resources/login/(\S*)'] = "resources/login/$1";
echo form_open('engineering-resources/login/validate_credentials');