1

应该在控制器或视图中调用 createUrl 吗?没关系?还是这很重要?

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

4

3 回答 3

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

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

于 2012-06-16T17:56:59.277 回答
1

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

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

于 2012-06-18T07:54:17.687 回答