createUrl Yii – следует ли нам называть его на контроллере или не имеет значения?

Должен ли createUrl вызываться на контроллере или в представлениях? Это не имеет значения? Или это имеет значение?

Есть ли правило, которому мы должны следовать? Как методы, которые расширяют ccontroller, должны использоваться на контроллерах и т. Д.?

В режиме просмотра вы можете использовать этот фрагмент. Вы можете использовать этот фрагмент повсюду.

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

Но для меня лучше определить url в действии контроллера и использовать просто $ some_url var в представлении.

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

оба прекрасны, когда вы находитесь в представлении $, это относится к текущему контроллеру. Таким образом, вы можете сделать $this->createUrl() в контроллере или в представлении.

Вы можете использовать создание url в своем представлении, это не влияет на производительность, потому что не использует запрос базы данных. Создать URL: Yii :: app () -> createUrl (); Создать абсолютный URL: Yii :: app () -> createAbsoluteUrl ();

Вы можете использовать $ this, чтобы использовать эти функции в своем представлении, например $ this-> createUrl ();