THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

J'essaie de faire un lien pour supprimer une entrée dans la base de données mais je ne comprends pas comment passer un id via la route.

Fonction dans mon contrôleur :

public function deleteWarranty($id) {
        WarrantyQuery::create()->findOneById($id)->delete()->save();
        return $this->generateRedirect("/admin/module/TankDatas");
    }

Mon lien dans le template :

<a href="{url path='/warranty/delete/%id' id=$ID}"><span class="glyphicon glyphicon-trash"></span></a>

Ma route dans route.xml :

<route id="warranty.delete" path="/warranty/delete/%id">
        <default key="_controller">TankDatas\Controller\WarrantyController::deleteWarranty</default>
</route>

Je n'obtiens que des erreurs 404, évidemment. Je me doute que y a quelque chose qui ne va pas dans ce que j'ai écris mais je ne comprends absolument pas la doc niveau Routing. C'est pas très clair de ce côté là...:|

Last edited by HeishPi (27-06-2019 07:39:53)


Développeur web Junior

Offline


La syntaxe est la suivante: "{id}" indique que la méthode deleteWarranty() possède un paramètre $id

<route id="warranty.delete" path="/warranty/delete/{id}">
        <default key="_controller">TankDatas\Controller\WarrantyController::deleteWarranty</default>
</route>

Tu peux aussi indiquer le format acceptable du paramètre sous la forme d'un expression régulière. Par exemple, si {id} est un entier positif, on écrit :

<route id="warranty.delete" path="/warranty/delete/{id}">
        <default key="_controller">TankDatas\Controller\WarrantyController::deleteWarranty</default>
        <requirement key="id">\d+</requirement>
</route>

OpenStudio Toulouse

Offline


Aaaaah, mais oui je suis étourdi, c'est du symfony donc ça marche comme les wildcard de ce dernier... Je me prends la tête et j'en oublie les basiques.

Merci beaucoup Roadster, ça marche impec maintenant cool


Développeur web Junior