final protected function editRow ( $model ,$data, $where , $msg ){ $id = array_unique((array)I('id',0)); $id = is_array($id) ? implode(',',$id) : $id; $where = array_merge( array('id' => array('in', $id )) ,(array)$where ); $msg = array_merge( array( 'success'=>'操作成功!', 'error'=>'操作失敗!', 'url'=>'' ,'ajax'=>IS_AJAX) , (array)$msg ); if( M($model)->where($where)->save($data)!==false ) { $this->success($msg['success'],$msg['url'],$msg['ajax']); }else{ $this->error($msg['error'],$msg['url'],$msg['ajax']); } }
函式中呼叫if( M($model)->where($where)->save($data)!==false ) 來運算元據庫
而M($model)中在呼叫的時候並沒有$table_pre引數,所以當二次開發時如果表字首不是預設字首的話
將無法使用 editRow等方法 更奇怪的是方法偏偏要使用final關鍵字 所以無法繼承,請問這裡是否用D($model)->where($where)->save($data)!==false來運算元據庫會更好呢。或者去掉final關鍵字 建立AdminExController.class.php來擴充。
我是剛從其他語言轉過來的 所以可能還對框架不是很熟悉 理解有偏差,還請大家多多指導 謝謝
2015年1月29日20:57:35
回覆
按照規範來,那個方法是方便後臺使用的,所以後臺的資料表之類都是固定字首,沒有或者其他的一般是其他系統的表,應該由他們的方法管理