createUrl Yii - 我们应该在控制器视图上调用它,还是无关紧要


createUrl Yii - should we call it on controller view, or doesn't matter?

createUrl应该在控制器上调用还是在视图中调用?这不重要?还是有关系?

有没有我们应该遵循的规则?像扩展控制器的方法应该在控制器上使用等等。?

在视图中,您可以使用此代码段。您可以在任何地方使用此代码段。

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。因此,您可以在控制器或视图中执行$this->createUrl()

您可以在视图中使用创建 url,它不会影响性能,因为它不使用任何数据库查询。创建网址 : Yii::app()->createUrl();创建绝对网址:Yii::app()->createAbsoluteUrl();

您可以使用$this在视图中使用此函数,例如 $this->createUrl();