creare nuova pagina

Salve a tutti ho iniziato da pochissimo a cimentarmi in questo stupendo mondo…

E avrei un problema ho aggiunto nella pagina "userMenu.php" un link alla pagina che ho chiamato "manage_holder",

in questo modo

//Aggiungere Titolare

	array(


		'label'=>'Gestisci Titolari', 


		'url'=>array('/post/manage_holder'), 


		'visible'=>Yii::app()->user->checkAccess('Aggiungere_Titolare')


	),

in realtà la pagina che ho creato non è altro che la pagina "admin" duplicata e rinominata tanto per fare qualche prova

il problema e che quando poi clicco sul link mi dice:

Error 404

Il sistema non ha potuto trovare l’azione “manage_holder” richiesta.

quindi sono alla ricerca di una dritta vi ringrazio aticipatamente.

Devi tenere ben presente almeno 2 files per ogni richiesta. Il primo è il controller (e quindi la sua action), il secondo il view. Il model non è sempre necessario. Alla richiesta index.php?r=post/manage_holder, quindi, DEVE corrispondere il suo controller /protected/controllers/PostController.php e la sua action actionManage_holder. Significa questo:


class PostController {

  ...

  public function actionManage_holder() {

    // questo è il tuo controller ...

  }

  ...

}

Se vedi quel messaggio, è perchè manca questo metodo.

Ti faccio però notare subiso una cosa: è molto meglio se mantieni il codice con una nomenclatura standard: ti sconsiglio di usare il simbolo “_” quando crei una nuova azione. E’ una pura scelta di stile, ma se dai in mano il tuo lavoro ad altri che conoscono Yii ma non il tuo nuovo standard rischi di fare confusione.

Suppongo che se non hai creato l’action, ti manchi anche la view. Provo ad anticiparti e dirti che quasi sicuramente quel tuo controller potrebbe essere così:

(ho usato un codice che rispecchia di più lo standard togliendo il simbolo ‘_’ ma tu sei libero di non farlo)


class PostController {

  ...

  public function actionManageholder() {

    $this->render('manageholder');

  }

  ...

}

Questo codice, richiama il template manageholder. Significa che DEVE esistere un file /protected/views/post/manageholder.php che corrisponde alla view.

Spero di averti fatto più chiarezza su questo fantastico framework =), ho cercato di essere il più chiaro possibile.

Riassumento l’MVC …: le richieste arrivano al controller, “scelgolo” il metodo che carica il model ed il view.

Grazie Mille!!

ho anche seguito il tuo consiglio sulla "nomenclatura" …