1

试图在 中使用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
4

3 回答 3

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;
    }
}
于 2013-01-29T13:52:27.277 回答
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;
}
于 2013-01-29T13:46:19.540 回答
0
public function behaviors() {
return array(
'withRelated'=>array(
'class'=>'ext.wr.WithRelatedBehavior',
),
Yii::app()->controller->id != 'apiv1' ?
'datetimeI18NBehavior'=>array(
'class' => 'ext.DateTimeI18NBehavior',
) : false,
);
}

去掉括号后面的逗号

于 2013-01-29T15:16:38.743 回答