2011-09-01 52 views
0

我有一個codeigniter應用程序。使用Codeigniter方法時例如超過1條記錄的自定義錯誤

我的控制器調用一個方法的函數。 我正在檢查它試圖選擇的行是否實際存在,然後分別向我的控制器返回true(和data)或false(和錯誤消息)。

在我的控制器中有多次調用此函數。

我只想加載'成功'視圖,如果所有這些方法調用返回true。 否則我想顯示一個錯誤..

鑑於我想在我的佈局顯示錯誤,我可以簡單地創建一個錯誤視圖,並將錯誤消息傳遞給它..如果有多個錯誤,我想顯示他們全部..

是簡單地做正確的/最有效的方法:

if($resultone['result'] == FALSE or $resulttwo['result'] == FALSE) 
{ 
    $data['error']['0']=$resultone['error']; 
    $data['error']['1']=$resulttwo['error']; 

    $this->load->view('custom_error',$data); 
} else { 
    //load success view 
} 

回答

1

我寧願這樣做:

$data = array(
    'data' => array(), 
    'errors' => array() 
); 
... 
$result = call_that_function($arg1); 
if (isset($result['error'])) { 
    $data['errors'][] = $result['error']; 
} else { 
    $data['data'][] = $result['data']; 
} 
... 
$result = call_that_function($arg2); 
if (isset($result['error'])) { 
    $data['errors'][] = $result['error']; 
} else { 
    $data['data'][] = $result['data']; 
} 
... 
$result = call_that_function($arg3); 
if (isset($result['error'])) { 
    $data['errors'][] = $result['error']; 
} else { 
    $data['data'][] = $result['data']; 
} 
... 
if (count($errors['errors']) > 0) { 
    $this->load->view('custom_error',$data); 
} else { 
    $this->load->view('success',$data); 
} 
+0

對不起慢了..好主意。 .. –

+0

很長時間過去了,但對於一些額外的想法感到好奇......這似乎是一個很長時間的處理錯誤的方式,因爲您必須將上述「錯誤處理」代碼添加到每個控制器 - 有沒有更好的方法? –

+0

隨意用這種方法創建一個幫手或基本控制器 – LeleDumbo

相關問題