Codeigniter: Une vue pour l'ajout et l'édition d'un post
Je suis en train de travailler sur un CMS dans Codeigniter et une partie principale est une forme de création et d'édition des messages.
J'ai été l'intention de l'utiliser le même fichier de la vue pour les deux puisque tous les éléments sont partagés. La seule différence serait la forme est vide lors de la création et elle est remplie lorsqu'en cours d'édition. Est-ce la bonne façon de faire?
Je pensais avoir une méthode pour chaque, donc post/créer et afficher/modifier($id).
Dans la méthode de création du contrôleur post que j'ai toutes les données d'un formulaire comme ceci (les erreurs):
$this->data['item_title'] = array(
'name' => 'item_title',
'id' => 'item_title',
'type' => 'text',
'value' => $this->form_validation->set_value('item_title'),
);
Je suis en train de réfléchir juste en modifiant la valeur de tenir la valeur de base de données au lieu de set_value(), donc quelque chose comme:
public function edit($id) {
$post_data = $this->post_model->get_post_data($id)
$this->data['item_title'] = array(
'name' => 'item_title',
'id' => 'item_title',
'type' => 'text',
'value' => $post_data['post_title'],
);
}
Suis-je sur la bonne voie ou est-il une meilleure façon d'aborder cette question? Devrais-je utiliser les 2 points de vue?
OriginalL'auteur Motive | 2012-07-24
Vous devez vous connecter pour publier un commentaire.
- je utiliser une partielle
_form.php
qui est partagée par une nouvelle édition de contrôleur de l'action. sur les deux actions, j'ai le même validations donc je l'ai déplacé le contrôleur de constructeur, puis pour chaque entrée je viens d'utiliser un opérateur ternaire qui dit que si la valeur existante$title
est fourni puis remplir le<input>
valeur de l'utiliser, sinon l'utilisation de la codeigniterset_value()
de l'aide pour remplir avec de la validation de la valeur.<input type="text" name="title" value="<?= isset($title) ? set_value("title", $title) : set_value("title") ?>" />
OriginalL'auteur twmulloy
J'ai l'habitude d'utiliser un point de vue avec un peu de variables. Les valeurs des champs peut être définie à partir des données à partir du serveur ou ils peuvent être laissés vides. Selon que les données sont fournis ou pas-je changer l'action du formulaire d'utilisation, car il peut être l'ajout ou la modification.
Ce devrait être la méthode la plus efficace puisqu'il utilise la notion de réutilisabilité 🙂
Un exemple rapide
OriginalL'auteur MasterGberry
Je ne suis pas pro à CodeIgniter (beaucoup mieux à CakePHP), mais dans le coeur de la MVC est qu'une action a un point de vue.
Vous n'avez aucune raison de le mettre dans une seule vue. 🙂
OriginalL'auteur
C'est certainement possible, comme je le fais tout le temps.
Normalement, j'aurais:
Action
Vue
Modifier
Désolé, je l'ai mentionné,
Form::Get
n'est pas un CodeIgniter fonction, mais celui que j'ai créé. Simplement, il prend le chemin de la valeur Post vous avez besoin pour lire. S'il n'existe pas, c'est à dire que vous n'avez pas posté, alors il se contente d'afficher la valeur du deuxième paramètre.Si je peux creuser le code pour vous, je le posterai.
OriginalL'auteur Gavin