Je suis désolé d'avoir posé ce genre de question, mais je suis vraiment frustré par se cette situationbonne façon de revenir du modèle au contrôleur
Ceci est mon contrôleur
public function changeName_PUT() {
header('Content-Type: application/json');
$return = \Models\User::getCurrent()->changeName(Input::data());
return json_encode($return);
}
Et ceci est mon modèle
public function changeName($data){
$rules = array(...);
$messages = array(...);
$valid = Input::validate($data, $rules, $messages);
if($valid === true){
return $this->putIntoDb(array('name' => $data['name'])) ? 'Namechanged successfully.' : 'An error occurred.';
}else{
return $valid->getMessage();
}
}
Mon problème est que peu importe si le modèle réussit ou échoue, il y a toujours une chaîne retournée, donc dans le contrôleur, je ne peux pas déterminer si le nom a été changé ou non. Si je retourne seulement true
ou false
alors dans le contrôleur, si quelque chose a échoué, je ne saurais pas ce que c'était. Mon autre option est de retourner des tableaux du modèle comme array('error', 'message')
mais cela semble si moche et me donne l'impression que je me trompe. Pouvez-vous me montrer le bon chemin?
Jeter une exception à partir du modèle ou ajouter un paramètre facultatif [byref] (http://php.net/manual/en/language.references.pass.php) appelé '& $ message' à' changeName' fonctionner sur le modèle? Mieux vaut jeter une exception à mon humble avis. – madebydavid
Il s'agit à peu près de MVC du tout. Il s'agit simplement de savoir comment renvoyer correctement les états d'erreur à partir d'une * fonction *. – deceze