j'éviter de mettre params dans les signatures d'action comme yu doens't aller sur les actions de traitement avec des signatures désadaptation [ gracieusement] du tout ... En plaçant $ user in, vous lierez cette action à toujours besoin d'un $ utilisateur spécifié et si vous décidez de changer de fonctionnalité, il sera plus difficile de déterminer pourquoi votre action n'est pas appelée. pourquoi votre $ _GET n'est pas défini ... Je suggère au lieu d'ajouter l'utilisateur $ dans la signature, faites juste quelque chose comme suit dans votre acti sur.
//will always run on /user/<USER:.*>
function actionIndex(){
$user = isset($_GET['user'])?$_GET['user']:NULL;
if(!is_null($user)){
//your user specific account action..
}else{
//handle your error gracefully..
}
}
Cette approche permet à votre action d'être plus polyvalente. La règle d'URL doit être comme suit:
'user/<user:.*>' => 'account/index/user/<user>' //user is defined as a get...
Espoir qui aide & & heureux de codage!
'urlManager' fonctionne dans le sens inverse, ce dont vous avez besoin, ce sont les redirections' .htaccess'. – adamors