I'm getting issues saving my data and also the connected data. below is my error.

Model

<?php
class Project extends AppModel {
    var $name = 'Project';
    var $displayField = 'project_title';


    var $validate = array(
        'user_id' => array(
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'project_title' => array(
            'notempty' => array(
                'rule' => array('notempty'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                'required' => true,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'description' => array(
            'notempty' => array(
                'rule' => array('notempty'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                'required' => true,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'status' => array(
            'boolean' => array(
                'rule' => array('boolean'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'approval_status' => array(
            'boolean' => array(
                'rule' => array('boolean'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'budget' => array(
            'money' => array(
                'rule' => array('money'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                'required' => true,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'bidding_type_id' => array(
            'notempty' => array(
                'rule' => array('notempty'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                'required' => true,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'project_type_id' => array(
            'notempty' => array(
                'rule' => array('notempty'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                'required' => true,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'esl' => array(
            'boolean' => array(
                'rule' => array('boolean'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'Country' => array(
                        'required' => true,
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'secrecy' => array(
            'boolean' => array(
                'rule' => array('boolean'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'Os' => array(
            'alphanumeric' => array(
                'rule' => array('alphanumeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                'required' => true,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'performance' => array(
                        'required' => false,
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'cme' => array(
                        'required' => false,
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'delivery' => array(
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'delivery_days' => array(
            'alphanumeric' => array(
                'rule' => array('alphanumeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'delivery_due' => array(
            'alphanumeric' => array(
                'rule' => array('alphanumeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'close' => array(
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'agree' => array(
            'boolean' => array(
                'rule' => array('boolean'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'created' => array(
            'date' => array(
                'rule' => array('date'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'favorite' => array(
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'top_employer' => array(
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
        'view_counter' => array(
            'numeric' => array(
                'rule' => array('numeric'),
                //'message' => 'Your custom message here',
                //'allowEmpty' => false,
                //'required' => false,
                //'last' => false, // Stop validation after this rule
                //'on' => 'create', // Limit validation to 'create' or 'update' operations
            ),
        ),
    );     

    var $belongsTo = array(
            'User' => array(
                    'className' => 'User',
                    'conditions' => '',
                    'fields' => '',
                    'order' => ''
            ),
            'ProjectType' => array(
                    'className' => 'ProjectType',
                    'foreignKey' => 'project_type_id',
                    'conditions' => '',
                    'fields' => '',
                    'order' => ''
            ),
            'BiddingType' => array(
                    'className' => 'BiddingType',
                    'foreignKey' => 'bidding_type_id',
                    'conditions' => '',
                    'fields' => '',
                    'order' => ''
            )
    );

        var $hasMany = array(
            'Bid' => array(
                'className'=> 'Bid',
                'order'=>'',
                ),
            'Comment' => array(
                'className'=> 'Comment',
                'order'=>'',
                )
            );


        var $hasAndBelongsToMany = array(
            'Os' =>
                    array(
                        'className' => 'OperatingSystem',
                        'joinTable' => 'project_operating_systems',
                        'foreignKey' => 'project_id',
                        'associationForeignKey' => 'os_id',
                        'conditions' => '',
                        'fields' => '',
                        'order' => '',
                        'limit' => '',
                        'offset' => '',
                        'finderQuery' => '',
                        'deleteQuery' => '',
                        'insertQuery' => ''
            ),
            'Country' =>
                    array(
                        'className' => 'Country',
                        'joinTable' => 'project_countries',
                        'foreignKey' => 'project_id',
                        'associationForeignKey' => 'country_id',
                        'conditions' => '',
                        'fields' => '',
                        'order' => '',
                        'limit' => '',
                        'offset' => '',
                        'finderQuery' => '',
                        'deleteQuery' => '',
                        'insertQuery' => ''
            ),
            'Category' => array(
                    'className' => 'Category',
                    'joinTable' => 'project_categories',
                    'foreignKey' => 'project_id',
                    'associationForeignKey' => 'category_id',
                    'conditions' => '',
                    'fields' => '',
                    'order' => '',
                    'limit' => '',
                    'offset' => '',
                    'finderQuery' => '',
                    'deleteQuery' => '',
                    'insertQuery' => ''
            ),
        );

        //Gets the Minimum and Maximum Bid of a particular project
        public function getMinMaxBid($projectId)
        {
            $minMax = array(
                'conditions'=>array(
                    'Bid.project_id'=>$projectId
                ),
                'fields'=>array(
                    'MIN(Bid.bid_amount) as minBid',
                    'MAX(Bid.bid_amount) as maxBid'
                ),
                'group'=>array('Bid.bid_amount')
                );

            $minMaxBids = $this->Bid->find('all',$minMax);
            return $minMaxBids[0][0];
        }

        //Gets Project, Project Owner, The Bidder Logged In, And All his comments
        public function getProjectSummaryData($ProjectId = null, $replyToId = null,$loggedInId = null)
        {
            $this->Behaviors->attach('Containable');
            $user = array('fields'=>array('id','username'));
            $projectOwnerId = $this->field('user_id',array('Project.id'=>$ProjectId));

            $commentConditions = array(
                'AND'=>array(
                        array(
                            'Comment.to_id'=>array(
                                "$replyToId","$projectOwnerId"
                                )
                            ),
                        array(
                            'Comment.from_id'=>array(
                                "$replyToId","$projectOwnerId"
                                )
                            )
                ));

            if($ProjectId)
            {
                $params = array(
                    'conditions'=>array(
                        'Project.id'=>$ProjectId
                        ),
                    'contain'=>array(
                        //Gets the User Who owns the Project
                        'User'=>$user,
                        'Bid'=>array(
                            'conditions'=>array('Bid.user_id'=>$loggedInId),
                             'order' => array('id' => 'desc'),
                            //The User Who owns the Bid
                            'User'=>$user),
                        //Gets All Comments that belong to project. Filters Only Comments Between Owner and Logged In Users
                        'Comment'=>array(
                                'conditions'=>$commentConditions,
                                'To'=>$user,
                                'From'=>$user
                            ),
                        )
                    );
                $project = $this->find('first',$params);

                $userProjectCount = $this->find('count',array('conditions'=>array('Project.user_id'=>$project['Project']['user_id'])));

                if($replyToId != $project['Project']['user_id'])
                    $project['Project']['replyTo'] = $replyToId;
                else
                    $project['Project']['replyTo'] = $project['Project']['user_id'];

                if($loggedInId == $project['Project']['user_id'])
                    $project['Project']['is_owner'] = true;
                else
                    $project['Project']['is_owner'] = false;

                $project['Project']['numMessages'] = count($project['Comment']);
                $project['Project']['totalProjects'] = $userProjectCount;
                //debug($project);
                return $project;
            }
            else
            {
                return false;
            }
        }//END FUNCTION

        public function tick($prodID)
        {
            //xdebug_break();
            $project = $this->findById($prodID);
            $project['Project']['view_counter'] += 1;
            $this->data = $project;
            if(!$this->save($this->data,false))
            {
                echo 'ticker issue';
            }
        }

        public function getProjectDataView($ProjectId, $userID)
        {
            $this->Behaviors->attach('Containable',array('autoFields'=>false));
            $user = array('fields'=>array('id','username'));
            $projectOwnerId = $this->field('user_id',array('Project.id'=>$ProjectId));
            $order = array('Comment.from_id');

            if($ProjectId)
            {
                $params = array(
                    'conditions'=>array(
                        'Project.id'=>$ProjectId
                        ),
                    'contain'=>array(
                        //Gets the User Who owns the Project
                        'User'=>$user,
                        'Bid'=>array(
                            //The User Who owns the Bid
                            'User'=>$user),
                        'ProjectType',
                        'Os',
                        'Comment'=>array(
                                'To'=>$user,
                                'From'=>$user,
                            ),
                        ),
                    );
                   //debug($params);

                $comments = $this->Comment->find('all',array(
                    'conditions'=>array(
                        'AND'=>array(
                            'Comment.to_id'=>$userID,
                            'Comment.project_id'=>$ProjectId)
                        ),
                    'fields'=>array(
                        'To.username',
                        'To.id',
                        'From.username',
                        'From.id',
                        'Comment.comment'
                    ),
                    'group'=>array(
                        'From.id'
                    )
                    )
                        );
                $minMaxBid = $this->getMinMaxBid($ProjectId);
                $project = $this->find('first',$params);
                $project['bid_count'] = $this->Bid->find('count',array('conditions'=>array('Bid.project_id'=>$ProjectId)));

                $project['Comment'] = $comments;
                $project['Project'] = array_merge($project['Project'],$minMaxBid);
                return $project;
            }
            else
            {
                return false;
            }
        }

        //checks to see if the user has already bid on the project
        public function hasBid($project, $userID)
        {
            if(!$project)
                return false;

            foreach($project['Bid'] as $bid)
            {
                if($bid['User']['id'] == $userID)
                    return true;
            }

            return false;
        }

        //returns total projects availible
        public function getTotalProjectCount()
        {
            return $this->find('count',array("order"=> array('Project.created desc')));
        }

        //returns total open project amount
        public function getTotalBidAmount()
        {
            $this->recursive = 0;
            $amounts = $this->find('all',array(
                'conditions'=>array(
                    'approval_status'=>1
                ),
                'fields'=>'budget'
            ));
            $amt = 0;

            foreach ($amounts as $amount)
            {
                $amt += $amount['Project']['budget'];
            }
            return $amt;
        }
}

OUTPUT

2011-12-19 12:47:50 Warning: Warning (2): preg_match() [function.preg-match]: Empty regular expression in [C:wampwwwhrw2cakelibsmodelmodel.php, line 2614] 2011-12-19

> 12:47:51 Error: Array (
>     [description] => notempt
>     [Os] => This field cannot bePU
>     [cme] => required
>     [delivery] => numeric )
> 
> 2011-12-19 12:47:51 Error: Array (
>     [Project] => Array
>         (
>             [project_title] => New Project
>             [project_type_id] => 5
>             [budget] => 20000
>             [bidding_type_id] => 2
>             [esl] => 1
>             [secrecy] => 1
>             [user_id] => 9
>             [approval_date] => Array
>                 (
>                     [month] => 12
>                     [day] => 19
>                     [year] => 2011
>                     [hour] => 12
>                     [min] => 47
>                     [meridian] => pm
>                 )
> 
>             [categories] => Array
>                 (
>                     [0] => 2
>                     [1] => 3
>                 )
> 
>             [description] => 
>             [performance] => 1
>             [cme] => 1
>             [project_deadline] => 1
>             [delivery] => 
>             [bidding_deadline] => 
>             [agree] => 0
>         )
> 
>     [Country] => Array
>         (
>             [Country] => Array
>                 (
>                     [0] => 1
>                     [1] => 4
>                 )
> 
>         )
> 
>     [Os] => Array
>         (
>             [Os] => Array
>                 (
>                     [0] => 3
>                     [1] => 5
>                 )
> 
>         )
> 
> )