Yii 在控制器中指定特定于访问规则的错误消息
我目前使用的是yii 1.1.10版本,在该版本中,我试图通过在accessRules函数中定义消息来指定特定于规则的错误消息,如下所述:Yii 在控制器中指定特定于访问规则的错误消息,yii,Yii,我目前使用的是yii 1.1.10版本,在该版本中,我试图通过在accessRules函数中定义消息来指定特定于规则的错误消息,如下所述: public function accessRules() { return array( array('allow', // allow all users to perform 'index' and 'view' actions 'actions'=>array('xxx','yyy'),
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('xxx','yyy'),
'users'=>array('*'),
),
array('allow', // allow all users to perform 'index' and 'view' actions
'message'=>'You must be logged in as Member to perform this action.',
'actions'=>array('zzz','aaa',),
'expression'=>'AuthenticationHelper::isSessionUserAdmin()',
),
array('deny', // deny all users
'users'=>array('*'),
'message' => "This is a generic message.",
),
);
}
然而,若表达式失败,即使第二次求值失败,我也只能查看根据拒绝规则指定的消息,即“这是一条通用消息”。我们高度赞赏实现所需行为的任何要点。您可以这样做:
array('allow',
'message'=>'You must be logged in as Member to perform this action.',
'actions'=>array('zzz','aaa',),
'expression'=>'AuthenticationHelper::isSessionUserAdmin()',
),
array('deny',
'message'=>'You must be logged in as Member to perform this action.',
'actions'=>array('zzz','aaa',),
'expression'=>'!AuthenticationHelper::isSessionUserAdmin()',
),
A仅用于
拒绝
规则。如果某件事被允许的话,展示一条信息是没有意义的。嗨,迈克尔,我同意你的观点,但从我的角度来看,如果不同的规则失败,人们希望展示不同的信息。否则,无论哪个规则失败,只显示一条通用消息对最终用户来说没有多大意义。因此,在这种情况下,我认为提供自定义消息的唯一方法是从规则中删除表达式,然后在我的操作中手动检查表达式,如果失败,则适当地显示错误消息。。