0
我正在使用Yii框架,我正在爲用戶創建一個註冊頁面。爲了讓用戶創建一個賬戶,他們需要輸入一個機票代碼。一個寡婦窗體彈出,他們填寫門票代碼,它ajax正確驗證並將其存儲爲會話變量。彈出窗口關閉,並允許用戶填寫表格的其餘部分並提交。然後表單應該驗證信息,創建用戶,將票證的user_ID重新分配給新的user_ID,並加載頁面/票證/ mytickets。yii框架方法沒有正確保存
會發生什麼情況,確認它存在,將其保存到會話中,創建用戶,調用票證重新分配方法,不重新分配票證,並重新加載頁面。當我在重新加載頁面上回顯頁面時,它會顯示user_ID的正確信息和ticket_ID。
任何提示將有助於調試,這將有所幫助。謝謝
//controler
public function actionRegister()
{
$model=new User;
$valid = false;
//check to see if valid
if(isset($_POST['User'])){
$valid = $model->checkValid();
}
if($valid)
{
$model->attributes=$_POST['User'];
$user_ID = $model->ID;
if($model->save()){
//save ticket to user
$reassigned = Ticket::model()->reassign_with_IDs($_SESSION['ticket_ID'],$user_ID);
if($reassigned){
unset($_SESSION['ticket_ID']);
//redirect to mytickets
$this->redirect(array('/ticket/mytickets'));
}
}
}
$this->render('register',array(
'model'=>$model,
));
}
//model
public static function reassign_with_IDs($ticket_ID,$user_ID){
$ticket = Ticket::model()->findByPK($ticket_ID);
$ticket->user_ID = $user_ID;
if($ticket->save()){
return true;
}
else{
return false;
}
}
你與你的答案是正確的。我剛剛得到數據庫updateByPK的錯誤,所以我最終這樣做: if($ model-> save()){ //將票證保存到用戶 $ user_ID = $ model-> ID; $ ticket_ID = $ _SESSION ['ticket_ID'];$ reassigned = Ticket :: model() - > reassign_with_IDs($ ticket_ID,$ user_ID); if($ reassigned)unset($ _ SESSION ['ticket_ID']); //重定向到mytickets $ this-> redirect(array('/ ticket/mytickets')); } } – 2014-09-19 14:03:49