Я знаю, что контроллер контролирует, а модель выполняет работу с базой данных.
Как далеко должна идти модель?
Если у меня есть массив:
array( 'first_name' => 'Thomas', 'second_name' => 'Clayson', 'email' => 'thomas@email.com' );
И вот запрос mysql, который мне нужно получить:
INSERT INTO `users` (`name`, `email`) VALUES ("Thomas Clayson", "thomas@email.com");
Как должна выглядеть моя модель?
Возьмите необработанные данные и отформатируйте их соответствующим образом
public function insertUser($details){
if(!isset($details['first_name']) || !isset($details['second_name']) || !isset($details['email'])){
return false;
}
$full_name = $details['first_name']." ".$details['second_name'];
$email = $details['email'];
$query = "INSERT INTO `users` (`name`, `email`) VALUES ('".$full_name."', '".$email."')";
}
Оставьте форматирование на контроллере и просто возьмите ввод и вставьте его вслепую в db
public function insertUser($full_name = false, $email = false){
if(!$full_name || !$email){
return false;
}
$query = "INSERT INTO `users` (`name`, `email`) VALUES ('".$full_name."', '".$email."')";
}
Что-то еще?
Моя проблема в том, что у меня многоданных для помещения в таблицу, поэтому я не хочу, чтобы каждое поле было отдельным аргументом функции.Но потом я чувствую, что введение массива информации в модель требует от меня проверки каждого индекса и соответствующего форматирования в любом случае, поэтому нет особого смысла делать это и в контроллере.Похоже, вдвое больше работы.
Но опять же, это не правильно делать и в модели!
Так что же делают другие люди?
PSВопрос основан на (но ни в коем случае не ограничивается) структурой codeigniter.