createUrl Yii - 我们应该在控制器视图上调用它,还是无所谓?

时间:2012-06-15 22:05:16

标签: php yii

是否应在控制器或视图中调用createUrl? 没关系?或者它确实重要?

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

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:2)

两者都很好,当你在视图中时,这指的是当前的控制器。因此,您可以在控制器或视图中执行$this->createUrl()

答案 2 :(得分:1)

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

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