Reputation: 570
I am creating a function for validation data on given scenario but its not working. Model code :
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;
}
}
Controller : code
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);
}
}
I want myvalidation
run on sessionapi
scenario but it's not working.
Upvotes: 0
Views: 1092
Reputation: 4160
Change Your Controller Code As: -SkipOnEmpty
public function rules()
{
return [
// ['session_key','deal_id','required'],
['data', 'validateCart'],
[['session_key','deal_id'], 'safe'],
// [['cartfood','session_key'], 'required','on'=>'sessionapi'],
//you have to apply skipOnEmpty in your rules as
['cartfood', 'myvalidation', 'on' => 'sessionapi' ,'skipOnEmpty' => false],
];
}
public function myvalidation($attribute, $params){
if (!$this->hasErrors()) {
echo '<pre>'; print_r($params); die;
}
}
Upvotes: 2