收藏本站 Archiver
    请 后使用快捷导航
    没有账号?入住 CI 中国社区
    楼主: snllll

    [模型] CI是如此的啰嗦!令人费解,还是我没有学会一个技巧?

    [复制链接]
    41
    发表于 2010年9月9日 06:32:31 | 只看该作者
    var_dump($_POST);
    exit();
    测试看看$_POST里面有没有东西、
    42
    发表于 2010年9月11日 10:49:25 | 只看该作者
    你在想 你POST直接入库以后 SUBMIT怎么办、、、
    43
    发表于 2010年9月15日 16:40:25 | 只看该作者
    这个问题我把input扩展了一下,还是一样要指定接收哪个字段,只是POST可以传入数组,大家给点意见:
    PHP复制代码

    <?php if ( ! defined ('BASEPATH')) exit ('No direct script access allowed');
    class MY_Input extends CI_Input {
    /**
    * Fetch items from the GET array
    *
    * @access public
    * @param mixed
    * @param bool
    * @return string
    */

    function get($index = '', $xss_clean = FALSE)
    {
    if(is_array ($index))
    {
    $rt = array ();
    foreach ($index as $key)
    $rt[$key] = $this->_fetch_from_array($_GET, $key, $xss_clean);
    return $rt;
    }
    else
    return $this->_fetch_from_array($_GET, $index, $xss_clean);
    }

    // --------------------------------------------------------------------

    /**
    * Fetch items from the POST array
    *
    * @access public
    * @param mixed
    * @param bool
    * @return string
    */

    function post($index = '', $xss_clean = FALSE)
    {
    if(is_array ($index))
    {
    $rt = array ();
    foreach ($index as $key)
    $rt[$key] = $this->_fetch_from_array($_POST, $key, $xss_clean);
    return $rt;
    }
    else
    return $this->_fetch_from_array($_POST, $index, $xss_clean);
    }
    }
    复制代码

    点评

    bob
    收藏代码 发表于 2014年5月20日 11:11

    评分

    参与人数 1 威望 +2 理由
    Hex + 2 支持!

    查看全部评分

    44
    发表于 2010年9月28日 13:19:39 | 只看该作者
    我觉得可以自己写一个扩展,呵呵。
    45
    发表于 2010年10月5日 10:33:52 | 只看该作者
    方便快速自动的接受客户端传过来的数据,这步我觉得也是非常有必要的的。

    至于验证数据方面,我们可以在model层面上自动触发验证.
    46
    发表于 2010年10月10日 12:23:39 | 只看该作者
    楼主需要等待更强大的人工智能时代。。。。。
    47
    发表于 2010年10月12日 16:00:07 | 只看该作者
    必须给域名才知道取什么元件
    这个和你的$_POST['field_name']对应
    觉得麻烦可以考虑循环POST数组。应该可以这么写
    if(isset($_POST))
    {
    foreach($_POST as $key=>$val)
    {
    $row[$key]=$_POST[$key];
    }
    }

    还可以做很多清理数据的函数进去。mysql_escape_string()等等。保证数据库不被乱侵入
    48
    发表于 2010年10月12日 21:53:00 | 只看该作者
    其实这个问题在THINKPHP中已经解决了..

    不知道大家有接触过没.. 反正我第一个框架接触的就是tp..

    如果tp中 添加数据 就直接new一个模型对象.. 然后提交上来的时候 用 模型->create()方法. 就可以把需要的数据全部拿到.

    方法内部已经根据模型的字段要求进行了处理. 例如用户名必须6到12个字符之间等等..

    然后再模型->add()就直接插入到数据库中了. 自增ID也保存在了模型对象中.

    create同样也进行了表单令牌的验证..

    不过TP的效率太低了.. 貌似跟其他的框架比起来很低.. 所以我也不用了- - . 但是方便性. 是真的很高很好.. 很强大....
    49
    发表于 2010年10月15日 15:00:37 | 只看该作者
    如果你的数据库表有一个字段是非空的...
    而你的form中并没有....想想程序会怎么样吧...
    50
    楼主| 发表于 2010年10月26日 04:20:58 | 只看该作者
    回复 45# wndyd


    我也是如此想的,有些时候我们并不需要特别严格的验证环境,比如我自己用的一个记录log的东西,简单的小应用,很方便。

    当然,即使是复杂环境,难道我们就这样做就真的会导致效率和复杂度的增高了吗?我认为并不一定!条条大路通罗马。JS验证,controller中的验证,之后在model中操作的数据已经足够安全了。

    我承认我之前这么说是对CI理解的太浅薄了,但是人们总是在追求高效率的完成工作不是吗。我看到有人说我需要人工智能了,我自己恰好就是人工智能专业的,模糊神经元、BP网络、仿真、知识学......等等。我丝毫不为我在这里想改进效率而羞愧,这本来就是我们努力的方向,如果不是,我想那为什么你们不用原始的PHP代码去逐行的编码呢?甚至于你们可以用基础的html语言去做每一个页面。

    这个话题我已经不再参与了,但是好像很多人非常的热衷于讨论这个话题,让我感觉到羞愧的同时也非常的滑稽。我为自己的浅薄羞愧,同时也为嘲笑我态度的人感觉滑稽。我已经说过不再回复了,是我失言了,我登陆就看到了提醒,杯具啊杯具
    下一页 »
    1 2 3 4 56 7 8 9 10 ... 13 下一页
    返回列表
    您需要登录后才可以回帖 登录 | 入住 CI 中国社区

    本版积分规则

    AltStyle によって変換されたページ (->オリジナル) /