codeigniter 覆盖表单助手中的 set_value 函数,使用 MY_helper 在获取时重新填充字段,同时发布

Posted

技术标签:

【中文标题】codeigniter 覆盖表单助手中的 set_value 函数,使用 MY_helper 在获取时重新填充字段,同时发布【英文标题】:codeigniter override set_value function in form helper using MY_helper to repopulate fields at get,post both 【发布时间】:2011-12-17 05:26:19 【问题描述】:

codeigniter 覆盖表单助手中的 set_value 函数,使用 MY_helper 在获取、发布和不验证时重新填充字段。我使用的 ci 版本是 2.0.3 我在 application/helpers/ 中创建了 My_form_helper.php 并添加了功能

function set_value($field = '', $default = '')
   
    if (FALSE === ($OBJ =& _get_validation_object()))
    
        if (isset($_POST[$field]))
        
            return form_prep($_POST[$field], $field);
        
        if (isset($_GET[$field]))
        
            return form_prep($_GET[$field], $field);
        

        return $default;
    

    return form_prep($OBJ->set_value($field, $default), $field);

但它不起作用。

在 autoload.php 中我正在这样做 -> $autoload['helper'] = array('html','form','url','my','text','MY_form'); 它说无法加载 my_form_helper.php

【问题讨论】:

“不工作”是什么意思?错误?空白值?什么?另外,你怎么称呼这个助手? @DamienPirsy in autoload.php in autoload.php in application/config helper 添加。 ***.com/questions/4740430/explain-ci-get-instance 此处有用但实例未使用 set_value 函数 【参考方案1】:

帮助文件名中的大写字母似乎有些问题。似乎 codeigniter 将帮助程序名称转换为全小写,然后找到该文件。

尝试帮助文件:my_form_helper.php 然后检查。它应该可以工作。

【讨论】:

是的,在自定义助手中我们创建实例是上面函数中需要的那种东西,直接使用 isset($_GET[$field])。 我不太明白您的评论,但我的回答与 CodeIgniter 抱怨“无法加载 my_form_helper.php”有关。这可能是因为您的帮助文件名中有大写字母。尝试将其更改为全小写,CodeIgniter 应该能够加载它。 oho 请看一下函数,提示:在帮助器中我们不会像在视图/控制器中那样使用 $this

以上是关于codeigniter 覆盖表单助手中的 set_value 函数,使用 MY_helper 在获取时重新填充字段,同时发布的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter 2.1.3 - 表单助手 - 无法提交数据

我如何从 Codeigniter 中的助手调用助手?

在我的 CodeIgniter 助手中获取 cookie 值

CodeIgniter助手函数:setu muliu value

Codeigniter 助手重复 HTML 代码片段

框架助手,它们的用途是什么?