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 ();