Я думаю о возвращении ошибок, которые произошли внутри модели, следующим образом:
class Data extends CI_Model {
private $errors_list
private function Set_error($control,$error_string){
$this->errors_list[][$control] = $error_string;
}
public function Get_errors($control){
// logic
return $errors_array;
}
public function Data(){
// error happens
$this->set_error('User','Your db seems to be empty!');
$this->set_error('Dev','// DB error in full');
return false;
}
}
Таким образом, я могу обработать их на контроллере:
class Data extends CI_Controller {
public function index(){
$this->load->model('Data');
$data = $this->data->data();
if(!$data)
// send $this->data->get_errors() to user and logs
else
// send $data to view
}
}
Это хорошая идея? Каковы потенциальные недостатки и есть ли лучший способ лечения ошибок операций с БД / проверки данных?
Новые "доказательства": http://www.firehed.net/mvc-model-data-validation