尝试在if
内使用array
条件,但它不起作用。我该如何解决这个问题?
代码:
public function behaviors()
{
return array(
'withRelated'=>array(
'class'=>'ext.wr.WithRelatedBehavior',
),
Yii::app()->controller->id != 'apiv1' ?
'datetimeI18NBehavior'=>array(
'class' => 'ext.DateTimeI18NBehavior',
), : false,
);
}
错误:
Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in .../models/Users.php on line 77
答案 0 :(得分:5)
这是解决问题的正确方法。
public function behaviors()
{
$arr = array(
'withRelated'=>array(
'class'=>'ext.wr.WithRelatedBehavior',
)
);
$bool = Yii::app()->controller->id != 'apiv1' ? true : false;
if($bool) {
$arr['datetimeI18NBehavior'] = array(
'class' => 'ext.DateTimeI18NBehavior',
);
} else {
$arr[] = false;
}
}
答案 1 :(得分:2)
尝试:
'datetimeI18NBehavior' => ( Yii::app()->controller->id != 'apiv1' ) ? array(
'class' => 'ext.DateTimeI18NBehavior',
) : false,
其他(非常明确的)解决方案:
public function behaviors()
{
$behaviors = array(
'withRelated'=>array(
'class'=>'ext.wr.WithRelatedBehavior',
)
);
if ( Yii::app()->controller->id != 'apiv1' ) {
$behaviors['datetimeI18NBehavior'] = array(
'class' => 'ext.DateTimeI18NBehavior'
);
}
return $behaviors;
}
答案 2 :(得分:0)
public function behaviors() {
return array(
'withRelated'=>array(
'class'=>'ext.wr.WithRelatedBehavior',
),
Yii::app()->controller->id != 'apiv1' ?
'datetimeI18NBehavior'=>array(
'class' => 'ext.DateTimeI18NBehavior',
) : false,
);
}
删除括号后的逗号