控制器中的 Codeigniter HMVC 错误调用函数

Posted

技术标签:

【中文标题】控制器中的 Codeigniter HMVC 错误调用函数【英文标题】:Codeigniter HMVC error calling function in controller 【发布时间】:2016-08-05 21:41:12 【问题描述】:

当我尝试在同一个控制器中调用一个方法时,我在 CI 中遇到了问题,但它最终给出了

“找不到对象 404 错误”

我将一个模块称为“登录”,即default controller,它的index 运行良好,但是当我尝试从表单发送数据时,它开始显示404 错误。

所有routesconfig 文件都很好

这是我调用控制器方法的视图中的代码:

应用程序 > 模块 > 登录 > 视图 > Login.php

<form class="m-t" role="form" action="<?php echo base_url('login/login/validate_user/'); ?>" method="post">
    <div class="login-form" id="login_view">
        <p>LOGIN IN.</p>

            <div class="form-group">
                <input type="text" class="form-control" placeholder="USERNAME">
            </div>
            <div class="form-group">
                <input type="password" class="form-control" placeholder="PASSWORD">
            </div>
            <button type="submit" class="btn btn-primary block full-width m-b">Login</button>

            <a href="javascript: void(0);" onclick="manage_login('login_view', 'fp_view');"><small>Forgot password?</small></a>
    </div>
</form>

【问题讨论】:

1.对于 url 创建使用 site_url() 而不是 base_url() 2. 从表单中删除操作属性并在同一操作上处理表单数据 从呈现页面的 html 中检查表单操作 URL。它可能会为您提供数据发送到何处的线索 你是从 htaccess 的 url 中删除 index.php 吗?如果不是,那么这是导致此错误的原因 它转到我想要的控制器方法,我的问题是页面给了我 404 错误 我将 index.php 添加到 .htaccess 但仍然给出相同的错误 【参考方案1】:

可以不用base_url()提交表单;

<?php 
$attributes = array('class'=>'m-t','role'=>'form','method'=>'post');
$this->load->helper('form');
echo form_open('login/validate_user',$attributes);
?>
    <div class="login-form" id="login_view">
        <p>LOGIN IN.</p>

            <div class="form-group">
                <input type="text" class="form-control" placeholder="USERNAME">
            </div>
            <div class="form-group">
                <input type="password" class="form-control" placeholder="PASSWORD">
            </div>
            <button type="submit" class="btn btn-primary block full-width m-b">Login</button>

            <a href="javascript: void(0);" onclick="manage_login('login_view', 'fp_view');"><small>Forgot password?</small></a>
    </div>
<?php echo form_close(); ?>

【讨论】:

我的问题是没有提交表单,我的问题是我尝试访问的哪个控制器功能显示“找不到对象 404 错误”

以上是关于控制器中的 Codeigniter HMVC 错误调用函数的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 模块化扩展 HMVC 不会加载视图

CodeIgniter HMVC object_to_array() 错误

CodeIgniter:关于 HMVC 和 Views 的一些疑惑

插入批处理,如果在Codeigniter 3 HMVC中有重复的密钥更新

使用 nginx 为 hmvc 结构设置 Codeigniter

带有 Wiredesignz HMVC 路由的 CodeIgniter