Problema Di Routing

Ciao a tutti,

mi hanno messo in mano un progetto in Yii da poco, non l’avevo mai visto prima. Ho questo problema: devo creare una nuova action, per cui ho nel mio TestController:


public function actionSave($id)

che chiamo in post. Ricevo un 400 bad request, e non ne capisco il motivo. Questo e’ il mio urlManager:


'urlManager'=>array(

                        'urlFormat'=>'path',

                        'rules'=>array(

                                'tests/<testid:\d+>/<controller:\w+>/<id:\d+(\.\d+)?>'=>'<controller>/view',

                                'tests/<testid:\d+>/<controller:\w+>/<action:\w+>/<id:\d+(\.\d+)?>'=>'<controller>/<action>',

                                'tests/<testid:\d+>/<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

                                '<controller:\w+>/<id:\d+>'=>'<controller>/view',

                                'hose/<action:\w+>/<code:(.*)>'=>'hose/<action>',

                                '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

                                'test/archived/<id:\w+-\d+>'=>'test/archived',

                                'test/reliable/<id:\w+-\d+>'=>'test/reliable',

                                'test/unreliable/<id:\w+-\d+>'=>'test/unreliable',

                               

                                'test/successrateyes/<id:\w+-\d+>'=>'test/successrateyes',

                                'test/successrateno/<id:\w+-\d+>'=>'test/successrateno',

                                'hose/setrating/<testid:\w+-\d+>/<id:\w+-\d+>/<value:\w+-\d+>'=>'hose/setrating',

                                '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

                        ),

                        'showScriptName' => false,

                ),

Qualche suggerimento?

Grazie mille

avrai dei problemi nella tua actionSave, non credo sia un problema di url, altrimenti avresti un 404.

ciao,

intanto grazie della risposta. Non direi, ho messo una die come prima riga della mia actionSave e non muore, quindi da li’ non ci passa proprio. Quel che non riesco a capire e’ che ho copiato nella template da un altro link, che invece funziona, cambiando esclusivamente il riferimento al metodo…

postaci un pò tutto il codice interessato


public function actionSave($id) {

        $model = Test::model()->findByPk($id);

        $model->attributes = $_POST['Test'];

        $model->save();



e nella template:


<?php $this->widget('bootstrap.widgets.TbButton', array('buttonType'=>'submit', 'type'=>'primary', 'label'=>'Save')); ?>

grazie mille

innanzitutto dal codice postato non si capisce se stai seguendo il pattern MVC.

actionSave è l’azione che ti carica anche la view?

il bottone




<?php $this->widget('bootstrap.widgets.TbButton', array('buttonType'=>'submit', 'type'=>'primary', 'label'=>'Save')); ?>



è nella view richiamata dall’actionSave?

perchè nell’actionSave non c’è un un if(isset($_POST[‘Test’]) ?