检索变量形式 渲染部分 Yii


Retrieve Variable form Render Partial 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 页面中的此变量。如您所见,我尝试在渲染部分中传递变量。如果我在索引页上声明变量,即

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

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

您不能在 renderPartial 中创建变量,然后以某种方式在该视图之外使用相同的变量。你真的必须在engineer_order中创建那个变量吗?

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

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