createUrlは、コントローラーまたはビューで呼び出す必要がありますか?それは問題ではありません?それとも重要ですか?
従うべきルールはありますか?ccontrollerを拡張する同様のメソッドは、コントローラーなどで使用する必要があります。
ビューでは、このスニペットを使用できます。このスニペットはどこでも使用できます。
Yii::app()->createUrl();
しかし、私にとっては、コントローラーのアクションで URL を定義し、ビューで単純に $some_url 変数を使用する方がよいでしょう。
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 は現在のコントローラーを参照します。したがって$this->createUrl()
、コントローラーまたはビューのいずれかで実行できます。
ビューで URL の作成を使用できますが、データベース クエリを使用しないため、パフォーマンスには影響しません。URL の作成: Yii::app()->createUrl(); 絶対 URL を作成します: Yii::app()->createAbsoluteUrl();
$this->createUrl(); のように、$this を使用してビューでこの関数を使用できます。