Должен ли класс Model в CodeIgniter отправлять обратно сообщения об ошибках MySQL, как они поступают в класс контроллера?

Я пишу модель CRUD (Create Read Update Delete) в структуре CI (CodeIgniter).

В целях безопасности и в соответствии с парадигмой MVC я спрашиваю, должна ли моя Модель отправлять возможные сообщения об ошибках MySQL такими, какими они являются, на контроллер, когда они происходят, зная, что они могут содержать имена таблиц или столбцов, или я «сопоставлю» эти ошибки внутри модели и общаться с контроллером с моей правильной обратной связи.

1

Решение

В производстве пользователь должен видеть только основные сведения об ошибках. Только в разработке вы можете отобразить все ошибки для их устранения. По моему мнению, нет необходимости показывать пользователям структуру таблицы и отдыха …

0

Другие решения

Вы не хотите показывать конечному пользователю какие-либо журналы ошибок или предлагать им причину сбоя запроса.

Достаточно простого сообщения об ошибке

$this->session->set_flashadata('error', 'An error occured, please contact an admin!');

class Model extends CI_Model
{
/**
*
* @return mixed Object if query is true, false otherwise
**/
public function method()
{
$query = $this->db->query("YOUR QUERY");

// conditional behavior
if($query->num_rows() > 0)
return $query->result();

// default behavior
log_message('error', $this->db->_error_message());
//might also be useful to email an admin to notify him
return false;
}
}

class Controller extends CI_Controller
{
protected $model;

public function __construct()
{
parent::__construct();
$this->model = $this->load->model('Model');
}

public function method()
{
if(!$this->model->method()){
$this->session
->set_flashadata('error', 'An error occured, please contact an admin!');
}
else{
$this->session
->set_flashadata('success', 'Good job!');
}

return redirect('/');
}

}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector