控制器中的 Codeigniter HMVC 错误调用函数
Posted
技术标签:
【中文标题】控制器中的 Codeigniter HMVC 错误调用函数【英文标题】:Codeigniter HMVC error calling function in controller 【发布时间】:2016-08-05 21:41:12 【问题描述】:当我尝试在同一个控制器中调用一个方法时,我在 CI 中遇到了问题,但它最终给出了
“找不到对象 404 错误”
我将一个模块称为“登录”,即default controller
,它的index
运行良好,但是当我尝试从表单发送数据时,它开始显示404
错误。
所有routes
和config
文件都很好
这是我调用控制器方法的视图中的代码:
应用程序 > 模块 > 登录 > 视图 > 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 object_to_array() 错误
CodeIgniter:关于 HMVC 和 Views 的一些疑惑
插入批处理,如果在Codeigniter 3 HMVC中有重复的密钥更新