我在yii framewoek set中的TBGridView中使用if else函数,
array(
'name'=>'tstatus',
'htmlOptions'=>array('width'=>'150px'),
'value'=>'
if($data->tstatus==B2bTicket::UNACTIVATED){
$data->tstatus=="未激活";
}elseif($data->tstatus==B2bTicket::YUYUE_PROCESSING){
$data->tstatus=="预约处理中,可取消";
}elseif($data->tstatus==B2bTicket::YUYUE_CONFIRM){
$data->tstatus=="预约确认,电话取消";
}elseif($data->tstatus==B2bTicket::FINISHED){
$data->tstatus=="体检完成";
}else{
$data->tstatus=="取消预约";
}',
'filter'=>CHtml::dropDownList('B2bTicket[tstatus]',$model->tstatus,
array(
''=>'全部',
B2bTicket::UNACTIVATED=>'未激活',
B2bTicket::YUYUE_PROCESSING=>'预约处理中,可取消',
B2bTicket::YUYUE_CONFIRM=>'预约确认,电话取消',
B2bTicket::FINISHED=>'体检完成',
B2bTicket::YUYUE_CANCEL=>'取消预约',
)
),
),
但是发生了错误:rse错误:语法错误,
D:\xampp\htdocs\marvel_b2b\sources\trunk\web\protected\framework
\base\CComponent.php(606) : eval()'d code on line 2
我该如何解决这个问题?
答案 0 :(得分:1)
如果我理解正确,通过分配==
,您应该使用单=
,
你可以使用一致的功能来完成这项工作
'value' => function($data){
$msg = '';
if($data->tstatus==B2bTicket::UNACTIVATED){
$msg ="未激活";
}elseif($data->tstatus==B2bTicket::YUYUE_PROCESSING){
$msg ="预约处理中,可取消";
}elseif($data->tstatus==B2bTicket::YUYUE_CONFIRM){
$msg ="预约确认,电话取消";
}elseif($data->tstatus==B2bTicket::FINISHED){
$msg ="体检完成";
}else{
$msg ="取消预约";
}
return $msg; // show what's going into table cell
},
'htmlOptions'=>array('style'=>'width: 150px'), // also fix this
'type' => 'raw', // or html
你应该总是回复或回应一些东西
美好的一天
答案 1 :(得分:0)
array(
'name'=>'tstatus',
'htmlOptions'=>array('width'=>'150px'),
'value'=>'
($data->tstatus==B2bTicket::UNACTIVATED)?
$data->tstatus=="未激活":
($data->tstatus==B2bTicket::YUYUE_PROCESSING)?
$data->tstatus=="预约处理中,可取消":
($data->tstatus==B2bTicket::YUYUE_CONFIRM)?
$data->tstatus=="预约确认,电话取消":
($data->tstatus==B2bTicket::FINISHED)?
$data->tstatus=="体检完成"":$data->tstatus=="取消预约")))))
',
'filter'=>CHtml::dropDownList('B2bTicket[tstatus]',$model->tstatus,
array(
''=>'全部',
B2bTicket::UNACTIVATED=>'未激活',
B2bTicket::YUYUE_PROCESSING=>'预约处理中,可取消',
B2bTicket::YUYUE_CONFIRM=>'预约确认,电话取消',
B2bTicket::FINISHED=>'体检完成',
B2bTicket::YUYUE_CANCEL=>'取消预约',
)
),
),
不要使用gridview上的if关键字使用此contion
(condition)?correct statements:fail statements
答案 2 :(得分:0)
我已经解决了这个问题,只需将该函数命名为以下函数:
array(
'name'=>'tstatus',
'htmlOptions'=>array('width'=>'150px'),
'value'=>"B2bTicket::getStatusDesc($model->tstatus)",
'filter'=>CHtml::dropDownList('B2bTicket[tstatus]',$model->tstatus,
array(
''=>'全部',
B2bTicket::UNACTIVATED=>'未激活',
B2bTicket::YUYUE_PROCESSING=>'预约处理中,可取消',
B2bTicket::YUYUE_CONFIRM=>'预约确认,电话取消',
B2bTicket::FINISHED=>'体检完成',
B2bTicket::YUYUE_CANCEL=>'取消预约',
)
),
),
并在模型中命名一个函数
/*
* 转换订单的状态
* @param $tstatus
* return 状态描述
*/
static function getStatusDesc($tstatus="")
{
switch($tstatus){
case $tstatus==B2bTicket::UNACTIVATED:
$tstatus="未激活";
break;
case $tstatus==B2bTicket::YUYUE_PROCESSING:
$tstatus="预约处理中,可取消";
break;
case $tstatus==B2bTicket::YUYUE_CONFIRM:
$tstatus="预约确认,电话取消";
break;
case $tstatus==B2bTicket::FINISHED:
$tstatus="体检完成";
break;
case $tstatus==B2bTicket::YUYUE_CANCEL:
$tstatus="体检完成";
break;
}
return $tstatus;
}