Hex 发表于 2011-1-9 00:50:09

回复 60# penglu3000


    想法确实是不错,不过这需要 ORM 的配合。如果没有更好的封装,可能会制造更多的混乱。

snllll 发表于 2011-1-9 01:28:21

楼主想法绝对正确。参考ecmall.
$data=$_POST;
然后针对数据和业务进行filter.不就行了?
而且,正好可以对 ...
loadinger 发表于 2010-11-11 17:07 http://myci.tk/forums/images/common/back.gif


    :handshake

snllll 发表于 2011-1-9 01:32:43

其实楼主的想法很对。这里喷楼主的习惯性的偏袒自己钟爱的技术,听不进别人的想法。
看看yii怎么处理的:

...
penglu3000 发表于 2011-1-8 23:48 http://myci.tk/forums/images/common/back.gif


    :handshake


再次上论坛,突然发现这个帖子还是有人关注的,可能是因为我的标题实在是太吓人了。

其实关于这个问题,是当初我太偏执,我态度上存在很大的问题,给前面争论过的朋友们道个歉。

这个东西,用起来得心应手,各人有各人的习惯和思维方式,不必非要分出个高低。

当然,关于思想上,我认为有冲突是好事,理越辩越明。大家各抒己见,能相互交流各自关于软件思想的认识,好事。

sailli 发表于 2011-1-12 20:41:59

刚入门ci,也遇到lz的问题,可能之前接触过tp吧,tp有lz所要的功能,而且基本上自动帮你过滤数据再对应数据表中的字段插入,的确很方便。离开tp,是因为其中的bug还是不少。至于有人说tp的效率不及ci,这我没亲自测试过,但是看过phpchina的那篇比较,貌似差小小而已,两者同样定位于轻型框架。

bluelomo 发表于 2011-1-19 16:26:00

ruby我忘了,反正asp.net MVC可以做到这个。但是,这样是很不好的,模式彻底僵化,你想改变都不行!!!!

testabc111 发表于 2011-2-1 22:23:18

当程序写多了以后,会发现些代码越严谨越好,而不是要简单化,因为所谓的简单以后会带来大麻烦

Aether 发表于 2011-2-3 15:29:30

楼主,你需要的是model...请你这个是封装在model里面的数据操作。
其次,你只需要 $query = $this->db->insert()...,$query 就是最后插入的id
第三,在业务逻辑里面只需要

$this->user->create()一句话就结束了。。。

小维 发表于 2011-2-25 13:11:13

1、前台的字段 也就是input的name最好不要和数据库的字段相同
2、不能直接使用$datas=$_POST; 先不说验证不验证的问题,在一个复杂的应用中,往往有很多hidden的name,他们并不需要入库,只是提供程序逻辑参考,这么写代码插入数据库就出错了。
3、其实你的想法是可以实现的,怎么实现呢?看如下:


<form xxxxxx>
<input name='db_newstitle'/>
<input name='db_newbody'/>
<input type='hidden' name='hidden_isad' value='0'/>
</form>

这里有一个新闻标题,新闻内容,是否广告三个字段,是否是广告是一个hidden值,通过页面载入或者其他js判断和改变。
你可以看到,你要入库的字段,有一个'db_'前缀,其他的字段没有这个前缀。
后台代码可以如下写:

$prefix='db_';
$datas=array();
foreach($_POST as $key=>$value)
{
if(strstr($prefix,$key))
    $datas[]=array(substr($key,strlen($prefix))=>$value);
}

这样处理,$datas数组里面就有一个title一个 body。
至于提交数据库前的验证,这里可以使用CI的验证类,具体怎么验证自己看验证类吧。

kid 发表于 2011-2-26 16:22:30

在简单的话,程序员就不值钱了~~~

yunnysunny 发表于 2011-2-26 19:28:53

表单里的数据是要经过校验的。
页: 1 2 3 4 5 6 [7] 8 9 10 11 12 13
查看完整版本: CI是如此的啰嗦!令人费解,还是我没有学会一个技巧?