方案不工作时的Yii2自定义验证
我正在为给定场景的验证数据创建一个函数,但它不起作用。 型号代码:方案不工作时的Yii2自定义验证,yii2,Yii2,我正在为给定场景的验证数据创建一个函数,但它不起作用。 型号代码: public function rules() { return [ // ['session_key','deal_id','required'], ['data', 'validateCart'], [['session_key','deal_id'], 'safe'], // [['cartfood','session_key'], 're
public function rules()
{
return [
// ['session_key','deal_id','required'],
['data', 'validateCart'],
[['session_key','deal_id'], 'safe'],
// [['cartfood','session_key'], 'required','on'=>'sessionapi'],
['cartfood', 'myvalidation', 'on' => 'sessionapi'],
];
}
public function myvalidation($attribute, $params){
if (!$this->hasErrors()) {
echo '<pre>'; print_r($params); die;
}
}
我希望
myvalidation
在sessionapi
场景中运行,但它不起作用。将控制器代码更改为:-
公共功能规则()
{
返回[
//['session_key'、'deal_id'、'required'],
['data','validateCart'],
[['session\u key'、'deal\u id']、'safe'],
//[['cartfood'、'session_key']、'required'、'on'=>'sessionapi'],
//您必须在规则中应用skipOnEmpty作为
['cartfood'、'myvalidation'、'on'=>sessionapi'、'skipOnEmpty'=>false],
];
}
公共函数myvalidation($attribute,$params){
如果(!$this->hasErrors()){
echo'';print_r($params);die;
public function actionPayinapp(){
$data=Yii::$app->getRequest()->getBodyParams();
$cart=json_decode($data['cartfood']);
$model=new Cart();
$model->scenario = 'sessionapi';
$dataarr = array();
$model->data = $cart;
if($model->validate())
{
die(ok);
}
}
}
}
将控制器代码更改为:-
公共功能规则()
{
返回[
//['session_key'、'deal_id'、'required'],
['data','validateCart'],
[['session\u key'、'deal\u id']、'safe'],
//[['cartfood'、'session_key']、'required'、'on'=>'sessionapi'],
//您必须在规则中应用skipOnEmpty作为
['cartfood'、'myvalidation'、'on'=>sessionapi'、'skipOnEmpty'=>false],
];
}
公共函数myvalidation($attribute,$params){
如果(!$this->hasErrors()){
echo'';print_r($params);die;
public function actionPayinapp(){
$data=Yii::$app->getRequest()->getBodyParams();
$cart=json_decode($data['cartfood']);
$model=new Cart();
$model->scenario = 'sessionapi';
$dataarr = array();
$model->data = $cart;
if($model->validate())
{
die(ok);
}
}
}
}
Try:['cartfood','myvalidation','on'=>['sessionapi']],@YasinPatel不工作$model=new Cart()$模型->场景='sessionapi';把这行代码放在所有代码之上action@YasinPatel感谢您的支持,祝您好运。请尝试:['cartfood'、'myvalidation'、'on'=>['sessionapi']]、@YasinPatel不工作$model=new Cart()$模型->场景='sessionapi';把这行代码放在所有代码之上action@YasinPatel不走运,谢谢你的支持。