2014-01-29 28 views
1

我正在尋找成功提交表單後重定向。從模型1保存成功,然後使用該PK到模型2中的fk。最初我有部件/組件。但是我有越來越多的這些小部件,並希望尋找另一種解決方案。獲取pk後重定向到另一個控制器

我也試過$this->redirect(array('controller/action', 'id'=>$model->id));但這個問題是,ID顯示在網址中。我也不喜歡那樣。

除了這兩個之外還有別的方法嗎?

回答

3

作爲一個創意,你可以在Yii中使用states。 節能模式,獲得ID後,您可以像下面:

//save done 
Yii::app()->user->setState('id',$THE_ID_YOU_WANT_TO_PASS); 
Yii::app()->request->redirect('YOUR DESTINATION'); 

然後在你的目的地,你可以使用你所設定的ID通過state

if(Yii::app()->user->hasState('id')){ 
$id=Yii::app()->user->getState('id'); 
} 

另一種解決方案是使用Yii的Flashstateflash之間的區別在於一次使用後閃存將爲空。如果您只想使用您的ID,這是一個很好的解決方案。 就像state

//save done 
Yii::app()->user->setFlash('id',$THE_ID_YOU_WANT_TO_PASS); 
Yii::app()->request->redirect('YOUR DESTINATION'); 

然後在你的目的地,你可以使用你所設定的ID通過flash

if(Yii::app()->user->hasFlash('id')){ 
$id=Yii::app()->user->getFlash('id'); 
} 

我希望這將有助於你。

+0

感謝您的解釋!效果很好!! – JamAndJammies

相關問題