Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
被找到但未找到的CodeIgniter控制器难倒_Codeigniter_Codeigniter Url - Fatal编程技术网

被找到但未找到的CodeIgniter控制器难倒

被找到但未找到的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"

好吧,我承认。我是一名CI新手。我犯了一些基本的错误,我已经犯了几个小时了,找不到我的错误

我有一个名为login的控制器。它位于“我的控制器”文件夹的“资源”文件夹中。它加载一个名为login_form的视图。但对于我来说,如果我访问domain.com/resources/login或domain.com/resources/index,它将不会加载。但我可以通过一条路线到达:

$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');