1

createUrlは、コントローラーまたはビューで呼び出す必要がありますか?それは問題ではありません?それとも重要ですか?

従うべきルールはありますか?ccontrollerを拡張する同様のメソッドは、コントローラーなどで使用する必要があります。

4

3 に答える 3

6

ビューでは、このスニペットを使用できます。このスニペットはどこでも使用できます。

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
        ));
    }
}
于 2012-06-15T22:40:23.540 に答える
2

ビューにいる場合、$this は現在のコントローラーを参照します。したがって$this->createUrl()、コントローラーまたはビューのいずれかで実行できます。

于 2012-06-16T17:56:59.277 に答える
1

ビューで URL の作成を使用できますが、データベース クエリを使用しないため、パフォーマンスには影響しません。URL の作成: Yii::app()->createUrl(); 絶対 URL を作成します: Yii::app()->createAbsoluteUrl();

$this->createUrl(); のように、$this を使用してビューでこの関数を使用できます。

于 2012-06-18T07:54:17.687 に答える