PHP 板


LINE

看板 PHP  RSS
虽然CI很久没更新了…(我也离开写程式行业二~三年) 不过近四个月,也越来越有心得,後来就慢慢找到自己的习惯开发方式 我自己个人: 【Model】 负责与资料库,所以几乎会写概观的通用性 通常会有: get_list($where, $limit, $offset, $order) 用来分页/列表用 get_where($where) 取得单一资料 on_duplicate_batch($data) 资料新增与更新 delete($where)、add($data)、update($data, $where) 後面的新增和更新几乎都很少用了 【Libs】 介於model和controller中间 把model的功能性除原本的,也做更多扩充,做更多细项 get_list_rows($where) =>> model->get_list($where)->num_rows() get_by_id($id) =>> model->get_where(array('id' => $id )) on_duplicate($data) =>> modetl->on_duplicate_batch(array(0 => $data)) delete_by_id($id) =>> model_delete(array('id' => $id )) 【Controller】 现在习惯CUID就分成: list_all($page) 会对应到Libs的get_list,然後做分页功能 add 喂一个假资料到view alter($id) 对应到Libs的get_by_id save($ajax) 这部份写成可以用ajax处理,或是post,再以Libs的on_duplicate 【View】 以add、alter为例,会共用同一个view, 在js检查完後,直接以 var data = { field : field_data } 送到Controller的save,只需要$this->input->post($data),接收後, 用on_duplicate就可以存入了,而不需各别接收每个栏位变数 【其他变形】 常常网页开发会遇到资料栏位不统一情况,然後就会浪费去多开一个资料表 实际上资料表不会存超过十笔XDDDDDD 这部份我就以json来储存,资料表规划会如下: id:资料表编号 type: 属於哪一种资料型态 data: 资料内容,这部份就以json型态存入 例:[{id:0, name:''},{id:1, name:''}] 所以在Libs里,就会写上一个存入/取出的function function get($type){ $result = model->get_where(array('type' => $type))->result_array() $result[0]['content'] = json_decode($resulst[0]['content'], TRUE) return $result[0] } function on_duplicate($data){ $data['content'] = json_encode($data['content']); model->on_duplicate_batch(array(0 => $data)) } 而在controller可以写一个通用的: function uni_save($ajax = TRUE){ $flag = 1 $data = $this->input->post('data'); Libs->on_duplicate($data) $ary = array('flag' => $flag) if($ajax)echo $ary; else return $ary; } 在view里: js则是以这样写 var data = [] $('.data_area').each(function(index){ var tmp ={ 'id' : index, 'name' : $(this).find('.name').val() } data.push(tmp) }); var ary = { 'id' : $('#id').val() 'type' : $('#type').val() 'data' : data } $.ajax{ data: { 'data' : ary} url : controller/save } 不过这种通用的有最大缺点就是,无法针对个别做删除, 只能每次做更新, 个人拿来的用途是:广告的图片和连结、产品的分类、邮递区号等 泛用性算是非常广XD 差不多是这样啦,相信还有更好的写法... -- 当对一切绝望的时候, 这时候的乐观,只是从悲观所堆积出来:) --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.105.39.7
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1405439293.A.393.html
1F:→ alog:去玩个Rails吧:) 07/16 01:23
2F:→ shadowjohn:去玩nodejs吧:) 07/16 01:40
3F:→ j87b0003:nodejs…搭no-sql db真的很好用= =…… 07/16 05:28
4F:推 boboptt:推一个!曾是 CI 人,现在 Laravel 07/16 07:55
5F:推 Laravel:不玩玩看我吗XD 07/17 11:23
6F:→ j87b0003:Laravel之前有小碰,但说明文件不是很亲民…(遮脸 07/17 13:00
7F:→ ilay:symfony也不错啊.. 07/17 17:27
8F:→ ilay:symfony玩熟了还可以跨入drupal8 module 开发咧 07/17 17:28
9F:推 jazzjas:我觉得lara的文件和相关资源很完整,台湾社群也蛮活络,很 07/17 18:57
10F:→ jazzjas:值得考虑 07/17 18:57
11F:推 hit1205:(握住j87b0003的手) 07/18 00:02
12F:推 rickysu:来试试Symfony吧,文件齐全到看不完 XD (握住一堆人的手) 07/18 09:12
13F:推 shadowjohn:推 symfony 之前出差也用了一阵子,满不错的... 07/18 10:12
14F:→ j87b0003:大家手牵手围一圈,来净化什麽东西吧(握手 07/18 21:54







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP