我正在尝试让我的页面显示一些不同的进度小部件,以形成一个动态更大的进度条。每个小部件都需要可点击以将用户带到相应的阶段。这是我到目前为止所尝试的:
<?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-&gt; id)。
我知道“属性”不对,我尝试过barOptions,options,rowOptions和其他我能找到的东西。仍然没有运气。
答案 0 :(得分:1)
options
属性..可以包含标签的所有html密钥..所以你也可以使用class,id ...和href ..并且显而易见onclick to ..但是接受一个数组(带有模型值)而不是(我认为)一个匿名函数,所以你应该在你的模型中形成你的选项价值内容..
<?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'],
])
}
?>
或者如果您有模型属性mystage_link,则可以使用
'options' => ['href' =>$model->mystage_link],
答案 1 :(得分:0)
解决了!
$ url = Url :: to([&#39;阶段/&#39;。$ gate,&#39; id&#39; =&gt; $ model [&#39; id&#39;]] );
&#39;选择&#39; =&GT; [&#39;的onclick&#39; =&GT; &#34; window.location.href =&#39; {$ URL}&#39;&#34],
谢谢大家!