检索变量形式渲染部分Yii

时间:2014-11-12 16:45:30

标签: php yii

我正在尝试通过将长页面切割成多个部分并使用渲染部分来清理长页面。到目前为止,这已经清理了页面并增加了可读性,但我有一个小问题。

我有我的主索引页面,我有一个循环通过客户订单的部分和一个显示用户帐户的部分,即:

$this->renderPartial('engineer_files/engineer_order', 
    array(
        'model' => $model,
        'orderServices' => $orderServices,
        'items' => $items,
        'extras' => $extras
    )
);

$this->renderPartial('engineer_files/rad',
    array(
        'model' => $model,
        'orderServices' => $orderServices,
        'items' => $items,
        'extras' => $extras,
        'servicesDp' => $servicesDp,
        'packageId' => $packageId
    )
);

在页面engineer_order中,我有以下内容

$packageId = $services->service_id;

但是我似乎无法在rad页面中访问此变量。如您所见,我已尝试在render部分中传递变量。如果我在索引页面上声明变量,即

$this->renderPartial('engineer_files/engineer_order',
    array(
        'model' => $model,
        'orderServices' => $orderServices,
        'items' => $items,
        'extras' => $extras
    )
);

$packageId = 2;

$this->renderPartial('engineer_files/rad',
    array(
        'model' => $model,
        'orderServices' => $orderServices,
        'items' => $items,
        'extras' => $extras,
        'servicesDp' => $servicesDp,
        'packageId' => $packageId
    )
);

然后变量是可访问和可用的,但我理想地想知道如何在一个渲染部分中声明一个变量,然后将这个相同的变量传递给另一个渲染部分。 非常感谢

1 个答案:

答案 0 :(得分:2)

您无法在renderPartial中创建变量,然后以某种方式在该视图外使用该变量。你真的必须在engineer_order内创建该变量吗?

因为您可以做的是在渲染任何其他内容之前在index页面中创建变量,然后将该变量传递给两个renderPartials。

$myVar = 'bla';

$this->renderPartial('engineer_files/engineer_order',
    array('myVar' => $myVar)
);

$this->renderPartial('engineer_files/rad',
    array('myVar' => $myVar)
);