createUrl Yii – dovremmo chiamarlo sulla vista controller o non import?

Dovresti creare Url sul controller o nelle viste? Non import? O import?

C'è una regola da seguire? Come i methods che estendono il ccontroller dovrebbero essere usati sui controller e così via ..?

In Visualizza puoi utilizzare questo snippet. Puoi usare questo snippet ovunque.

Yii::app()->createUrl(); 

Ma per me è meglio definire un url nell'azione del controller e usare semplicemente $ some_url var nella vista.

 class SomeController extends Controller { public function actionSomeAction() { $params = arrays( 'key1' => 'value1', 'key2' => 'value2', ); $myUrl = Yii::app()->createUrl('controller/action', $params); $this->render('some_action', arrays( 'my_url' => $myUrl )); } } 

entrambi vanno bene, quando sei in una vista $ questo si riferisce al controller corrente. Quindi puoi fare $this->createUrl() in qualsiasi controller o vista.

Puoi utilizzare la creazione di url nella tua vista, non influisce sulle performance perché non utilizza alcuna query di database. Crea Url: Yii :: app () -> createUrl (); Crea url assoluto: Yii :: app () -> createAbsoluteUrl ();

Puoi usare $ this per usare queste funzioni nella tua vista come $ this-> createUrl ();