[Yii 1] Il controller non vede le variabili correttamente (?) impostate nella rotta dell'urlManager

Ho ereditato una applicazione legacy, ed ora devo configurare una nuova rotta, affinche’ accetti due variabili. Per darvi maggiore contesto possibile, ci troviamo in SettingsController::listinoAction(); Ecco: vorrei che questa action accetti due variabili opzionali come categoria e prodotto.

Quel che ho fatto, e’ stato impostare una nuova rotta in questo modo:




        'urlManager'    => array(

            'urlFormat'      => 'path',

            'showScriptName' => false,                                                                                                                                                                       		

            'rules' => array(

                'http://<instance:\w+>.dotadv.com/<controller:\w+>/<action:\w+>/<category:\w+>/<product:\w+>'=>'<controller>/<action>/<category>/<product>',

            ),  

        ),  



successivamente, sono andato nella mia action, ma di quelle variabili nessuna traccia.





    public function actionListino($category = null, $product = null)

    {

        var_dump($_GET);

        var_dump($category);

        var_dump(Yii::app()->getRequest()->getQuery('category'));

        var_dump(CHttpRequest::getParam('category'));


        $this->render(

            '/settings/listino',            

            array(

                'category'   		=> $category,

                'product'            => $product,

            )

        );

    }



Da tenere presente che questa action, con la rotta settings/listino/auto/mpu stampa a video




array(1) { ["auto"]=> string(3) "mpu" } NULL NULL NULL



[color="#4A4A4A"]Mentre quel che mi aspettavo vorrebbe essere il piu’ simile possibile a[/color]




array(1) { ["category"]=> string(3) "auto" , ["product"]=> string(3) "mpu" NULL NULL NULL



idee?

Sinceramente non ho idea di come mettere le mani nell’UrlManager, ma potrebbero esserci strade diverse.

Per esempio combinare le due variabili come se fossero una e poi separarle all’interno della action.

In altre parole, l’indirizzo “settings/listino/auto/mpu” diventerebbe “settings/listino/auto_mpu”.

Spero di non aver detto eresie.

In verita’ ho risolto, ma dal gruppo di google di yii. In pratica il path dell’urlManager si presenta nella forma:


/nomeVariabile/valore

Ad esempio


/veryRandomNumber/42

E questo generera’ la variabile $veryRandomNumber valorizzata a 42.