Мне интересно, что является лучшим сообщением, чтобы передать сообщение об успехе или ошибке от модели контроллеру? Сообщение об успехе легко, потому что мы можем передать данные обратно. Однако для сбоев мы можем передавать только FALSE, а не результат обратного вызова ошибки.Где передать сообщение, когда модель не может найти запись в БД в MVC?
Каков наилучший способ?
Вот метод один:
Вот модель:
function get_pkg_length_by_id($data) {
$this->db->where('id', $data['pkg_length_id']);
$result = $this->db->get('pkg_lengths');
if($result->num_rows() > 0) {
return $result->row();
}
else {
return false;
}
}
В контроллере, я буду делать
function show() {
if(get_pkg_length_by_id($data) {
//pass success message to view
}
else {
//Pass failure message to view
}
Вот версия 2:
В модели
function get_pkg_length_by_id($data) {
$this->db->where('id', $data['pkg_length_id']);
$result = $this->db->get('pkg_lengths');
if($result->num_rows() > 0) {
$result['status'] = array(
'status' => '1',
'status_msg' => 'Record found'
);
return $result->row();
}
else {
$result['status'] = array(
'status' => '0',
'status_msg' => 'cannot find any record.'
);
return $result->row();
}
}
В контроллере
function show() {
$result = get_pkg_length_by_id($data);
if($result['status['status']] == 1) {
//pass $result['status'['status_msg']] to view
}
else {
//pass $result['status'['status_msg']] to view
}
Я думаю, что функция должна показать просто вернуться раз. Используя несколько возвратов => код спагетти ... было бы лучше установить переменную в if/else и вернуть ее. Личные предпочтения, я полагаю ... – joe42
@ joe42 да, это вопрос личных предпочтений. Хотя я нахожу, что наличие кучу других делает вещи более спагетти похожими на код :-) – TheMethod