Quand vous connectez les routes en utilisant
Les Eléments de Route vous voudrez peut-être que des éléments routés
soient passés aux arguments à la place. L’option
Maintenant, grâce aux possibilités de routing inversé, vous pouvez passer
dans le tableau d’URL comme ci-dessous et CakePHP sait comment former l’URL
comme définie dans les routes:
pass
défini une liste
des éléments de route doit également être rendu disponible en tant qu’arguments
passé aux fonctions du controller:// src/Controller/BlogsController.php
public function view($articleId = null, $slug = null)
{
// du code ici...
}
// routes.php
Router::scope('/', function ($routes) {
$routes->connect(
'/blog/:id-:slug', // E.g. /blog/3-CakePHP_Rocks
['controller' => 'Blogs', 'action' => 'view']
)
// Défini les éléments de route dans le template de route
// à passer en tant qu'arguments à la fonction. L'ordre est
// important car cela fera simplement correspondre ":id" avec
// articleId dans votre action.
->setPass(['id', 'slug'])
// Defini un pattern que `id` doit avoir.
->setPatterns([
'id' => '[0-9]+',
]);
});
// view.ctp
// ceci va retourner un lien vers /blog/3-CakePHP_Rocks
echo $this->Html->link('CakePHP Rocks', [
'controller' => 'Blog',
'action' => 'view',
'id' => 3,
'slug' => 'CakePHP_Rocks'
]);
// Vous pouvez aussi utiliser des paramètres indexés numériquement.
echo $this->Html->link('CakePHP Rocks', [
'controller' => 'Blog',
'action' => 'view',
3,
'CakePHP_Rocks'
]);
Aucun commentaire:
Enregistrer un commentaire
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.