用户
 找回密码
 入住 CI 中国社区
搜索
楼主: snllll
收起左侧

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

  [复制链接]
发表于 2010-9-9 06:32:31 | 显示全部楼层
var_dump($_POST);
exit();
测试看看$_POST里面有没有东西、
发表于 2010-9-11 10:49:25 | 显示全部楼层
你在想 你POST直接入库以后 SUBMIT怎么办、、、
发表于 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 支持!

查看全部评分

发表于 2010-9-28 13:19:39 | 显示全部楼层
我觉得可以自己写一个扩展,呵呵。
发表于 2010-10-5 10:33:52 | 显示全部楼层
方便快速自动的接受客户端传过来的数据,这步我觉得也是非常有必要的的。

至于验证数据方面,我们可以在model层面上自动触发验证.
发表于 2010-10-10 12:23:39 | 显示全部楼层
楼主需要等待更强大的人工智能时代。。。。。
发表于 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()等等。保证数据库不被乱侵入
发表于 2010-10-12 21:53:00 | 显示全部楼层
其实这个问题在THINKPHP中已经解决了..  

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

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

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

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

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

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


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

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

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

   这个话题我已经不再参与了,但是好像很多人非常的热衷于讨论这个话题,让我感觉到羞愧的同时也非常的滑稽。我为自己的浅薄羞愧,同时也为嘲笑我态度的人感觉滑稽。我已经说过不再回复了,是我失言了,我登陆就看到了提醒,杯具啊杯具

本版积分规则