1
我正在尋找成功提交表單後重定向。從模型1保存成功,然後使用該PK到模型2中的fk。最初我有部件/組件。但是我有越來越多的這些小部件,並希望尋找另一種解決方案。獲取pk後重定向到另一個控制器
我也試過$this->redirect(array('controller/action', 'id'=>$model->id));
但這個問題是,ID顯示在網址中。我也不喜歡那樣。
除了這兩個之外還有別的方法嗎?
我正在尋找成功提交表單後重定向。從模型1保存成功,然後使用該PK到模型2中的fk。最初我有部件/組件。但是我有越來越多的這些小部件,並希望尋找另一種解決方案。獲取pk後重定向到另一個控制器
我也試過$this->redirect(array('controller/action', 'id'=>$model->id));
但這個問題是,ID顯示在網址中。我也不喜歡那樣。
除了這兩個之外還有別的方法嗎?
作爲一個創意,你可以在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的Flash
。 state
和flash
之間的區別在於一次使用後閃存將爲空。如果您只想使用您的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');
}
我希望這將有助於你。
感謝您的解釋!效果很好!! – JamAndJammies