form validation and CActiveDataProvider

Hi

I’ve created action below to show info about order status. Everything works good with valid input but I don’t know how to prevent invalid data input. When I submit empty form I see error msg like this:

PHP Error Undefined variable: dataProvider. Why validate() method doesn’t work and how to fix it?




public function actionStatus()

{

	$formModel = new StatusForm('status');

              

        if (isset($_POST['StatusForm']))

	{

		$formModel->attributes = $_POST['StatusForm'];			                                                                                            

                       

		if ($formModel->validate())

		{														                               

                        $dataProvider = new CActiveDataProvider('Order', array(

                            'criteria' => array(

                                'condition' => 'order_id=' . "'" . $formModel->order_id . "'",

                             )

                        ));	                                                                                              

		}

		        

        }

        else

        {

                $dataProvider = new CActiveDataProvider('Order', array(

                    'criteria' => array(

                        'condition' => 'order_id=' . 'NULL',

                    )

                ));

        }




        //renders table with order status

	$this->render('status', array(

                'dataProvider' => $dataProvider,

                'formModel'    => $formModel,

        ));

	

}



The error message is correct: if $formModel->validate() returns false, the creation of dataprovider will be skipped in your code, and execution continues on "$this->render(…)" . This is why $dataProvider is undefined.

fixed

thanks :)