Php Yii2进度小部件可点击字段

Php Yii2进度小部件可点击字段,php,yii2,Php,Yii2,我试图让我的页面显示多个不同的进度小部件,形成一个动态的更大的进度条。每个小部件都需要可以点击,才能将用户带到相应的阶段。以下是我迄今为止所尝试的: <?php $retVal = ""; $stages = Phases::find()->asArray()->all(); foreach($stages as $stage) { $percent = PrjApprovals::percentageComplete($mode

我试图让我的页面显示多个不同的进度小部件,形成一个动态的更大的进度条。每个小部件都需要可以点击,才能将用户带到相应的阶段。以下是我迄今为止所尝试的:

<?php
    $retVal = "";
    $stages = Phases::find()->asArray()->all();
    foreach($stages as $stage)
    {
        $percent = PrjApprovals::percentageComplete($model->id, $stage['phase']);
        echo $retVal = '<div style="float:left; padding-top: 20px;">' .
        Progress::widget
        ([
            'percent' => $percent,
            'label' => $stage['phase'],
            'attributes' => 
                function($model)
                {
                    $url = Url::to(['phases/' . $stage['phase'], 'id' => $model->id]);
                    return ['onclick' => "window.location.href='{$url}'"];
                },
         ]) . '</div>';
    }
?>

我需要的链接,以不改变任何内容的进展小部件,但使它使当前的内容是可点击的。该链接需要将用户发送到他们单击的任何阶段,并使用相应的模型id($model->id)


我知道“属性”是不对的,我已经尝试了barOptions、options、rowOptions以及我能找到的所有其他选项。还是不走运

选项属性。。可以包含标记的所有html键。。所以你可以使用class,id。。。还有。。并且很明显地再次点击。。但是接受一个数组(带有模型值),而不是(我认为)一个匿名函数,所以你应该在你的模型中形成你的选项值内容

<?php
$retVal = "";
$stages = Phases::find()->asArray()->all();
foreach($stages as $stage)
{
    $percent = PrjApprovals::percentageComplete($model->id, $stage['phase']);
    echo $retVal = '<div style="float:left; padding-top: 20px;">' .
    Progress::widget
    ([
        'percent' => $percent,
        'label' => $stage['phase'],
        'options' => ['href' => 'your_url'], 
     ]) 
}
?>
解决了

$url=url::to(['phases/'.$gate,'id'=>$model['id']])

'options'=>['onclick'=>“window.location.href='{$url}'”


谢谢大家

是否要使用堆叠的进度条?不,没有必要。我所希望的是,每个progress小部件都可以使用GET请求中相同的模型id将用户发送到不同的阶段。该链接应类似于/Controller/Action+id=$model->id。例如:/basic/web/index.php?r=phases%2f初始化&id=3如何将“id”作为GET和stage添加到url?我尝试过这样的方法:'options'=>['href'=>'/phases/'.$stage['phase'],'id'=>$model->id],但没有骰子。每个阶段都必须动态添加到URL中,就像模型id一样。@jamesdoe我的答案似乎可以引导您找到正确的解决方案。。应该是公平的,你给它适当的评价。。
     'options' => ['href' =>$model->mystage_link],