Si vous définissez des champs supplémentaires dans generator.yml
, vous pouvez remplacer l'une des actions du générateur d'administration pour gérer les champs comme vous le souhaitez.
Regardez généré actions.class.php dans cache/YourApp/YOURENV/modules/autoYOURMODULE/actions/actions.class.php. Vous pouvez remplacer l'une de ces fonctions par la vôtre dans apps/YOURAPP/modules/YOURMODULE/actions/actions.class.php, car elle hérite de ce fichier mis en cache. Lorsque vous modifiez generator.conf, le fichier mis en cache est mis à jour mais votre code le remplace toujours. Vous voulez probablement remplacer processForm()
.
J'ai un exemple dans step 5 at this blog post:
protected function processForm(sfWebRequest $request, sfForm $form)
{
$form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
if ($form->isValid())
{
$notice = $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.';
// NEW: deal with tags
if ($form->getValue('remove_tags')) {
foreach (preg_split('/\s*,\s*/', $form->getValue('remove_tags')) as $tag) {
$form->getObject()->removeTag($tag);
}
}
if ($form->getValue('new_tags')) {
foreach (preg_split('/\s*,\s*/', $form->getValue('new_tags')) as $tag) {
// sorry, it would be better to not hard-code this string
if ($tag == 'Add tags with commas') continue;
$form->getObject()->addTag($tag);
}
}
try {
$complaint = $form->save();
// and the remainder is just pasted from the generated actions file
Quand je compris que je pouvais lire les fichiers générés dans le cache pour voir exactement ce que le générateur d'administration a été fait, et que je pouvais remplacer une partie de eux, cela m'a rendu beaucoup plus productif avec le générateur d'administration.
Bienvenue à l'endroit où les cadres deviennent un fardeau. Espérons que quelqu'un d'autre a déjà résolu ce problème ... – DampeS8N
Pshaw @ DampeS8N. Symfony gère cela assez élégamment. – Nathan
Je voulais dire dans le plus grand schéma des choses. Si votre cadre ne fait pas ce que vous voulez, c'est le pire sentiment du monde. Et tu dois juste prier Baal et Belial que quelqu'un d'autre l'ait réparé. Si ce n'était pas la chute des symphonies. Quelque chose d'autre est. :) – DampeS8N