The 2007-11-17 at 10:32 by Loïc d'Anterroches filed under News.
Je disais que je devais améliorer la gestion des formulaires pour faire la génération automatique d’un formulaire pour un modèle. C’est maintenant chose faite et le résultat est déjà dans l’application exemple. Voici maintenant ce que vous pouvez faire :
public function updateItem($request, $match)
{
Pluf::loadFunction('Pluf_Shortcuts_GetObjectOr404');
Pluf::loadFunction('Pluf_Shortcuts_GetFormForModel');
$item = Pluf_Shortcuts_GetObjectOr404('Todo_Item', $match[1]);
$new_data = $item->getData();
if ($request->method == 'POST') {
$form = Pluf_Shortcuts_GetFormForModel($item, $request->POST);
if ($form->isValid()) {
$item = $form->save();
Pluf::loadFunction('Pluf_HTTP_URL_urlForView');
$url = Pluf_HTTP_URL_urlForView('Todo_Views::viewList',
array($item->list));
return new Pluf_HTTP_Response_Redirect($url);
}
} else {
$form = Pluf_Shortcuts_GetFormForModel($item, $item->getData());
}
return Pluf_Shortcuts_RenderToResponse('edititem.html',
array('page_title' => 'Edit a todo item',
'item' => $item,
'form' => $form));
}
En 14 lignes de code, vous avez l’édition complète d’un élément Todo_Item. Dans le dépôt vous avez le code documenté. C’est d’ailleurs tellement générique que cela va être possible de faire une vue standard pour l’édition d’un modèle, du CRUD. Cela va bientôt arriver…
Comments from readers