If statement 如何使用yii中bootstrap.widgets.TbGridView值中的if-else函数?
我在yii framewoek集合的TBGridView中使用if-else函数If statement 如何使用yii中bootstrap.widgets.TbGridView值中的if-else函数?,if-statement,yii,If Statement,Yii,我在yii framewoek集合的TBGridView中使用if-else函数 array( 'name'=>'tstatus', 'htmlOptions'=>array('width'=>'150px'), 'value'=>' if($data->tstatus==B2bTicket::UNACTIVATED){ $data->tstatus=="未
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错误:语法错误,中出现意外的“if”(T\u if)
如何解决此问题?如果我正确理解您的意思,通过分配
=
您应该使用单个=
你可以使用一个一致的函数来完成这项工作
'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
你应该总是返回或回应一些东西
你好
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关键字使用此内容
(condition)?correct statements:fail statements
我已经解决了这个问题,只需将该值的函数命名如下:
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;
}
您是否尝试过像
($data->tstatus==B2bTicket::UNACTIVATED?…)
?tinybyte,为什么您认为这会起作用?这里的$data是什么?php会在数据提供程序之外识别它吗?此$data
表示您的数据提供程序提供的每个项,请尝试,并阅读更多关于yii和php$data->tstatus==B2bTicket::UNACTIVATED中一致函数的信息。此语句将始终返回false,因为$data tstatus将为null。这是因为只有数据提供者知道$data。如果要引用$dataProviderwhy double=返回的$data,则必须使用逗号写入。这是您的问题
/*
* 转换订单的状态
* @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;
}