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/m.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燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP