你好,我有一个过程,用户单击一个添加按钮,然后它将信息保存到数据库中,然后通过另一个函数获取它。但我想做的是跳过数据库保存然后只是把它放在一个数组或会话(无论什么是可能的),然后使用它放在一个视图。这可能吗?
下面是我当前的代码:
在视图中添加按钮:
<p>
<?= Html::a('<b>ADD</b>',
['site/addsubject', 'TrNo' => $subjects['TrNo'], 'clientid' => $_user],
['class' => 'btn-info btn-transparent btn-large', 'data-method' => 'post']) ?>
</p>
然后控制器中的函数:
public function actionAddsubject($TrNo, $clientid){
//echo $subjectid;
//echo "Hello";
$model = new ActiveSubject();
//$var = $model->AddSubject($subjectid);
$model->AddSubject($TrNo, $clientid);
$this->redirect(array('site/main'));
// echo $var->subjectname;
//echo $var['subjectname'];
}
进行保存的模型
public static function AddSubject($TrNo, $clientid){
$subject = ActiveCurriculum::find()
->select('scstock.*')
->joinWith('schead')
->where(['schead.TrNo' => $TrNo])
->one();
$activesubject = new ActiveSubject();
$activesubject->clientid = $clientid;
$activesubject->TrNo = $subject->TrNo;
$activesubject->subjectcode = $subject->subjectcode;
$activesubject->schedday = $subject->schedday;
$activesubject->schedtime = $subject->schedtime;
//remember to use schead if the value is joined from another table.
$activesubject->section = $subject->schead->section;
$activesubject->roomcode = $subject->roomcode;
$activesubject->units = $subject->units;
$activesubject->save();
//reduces the slot of ccsubject by 1
$subject->slots = $subject->slots - 1;
//never forget the saving part
$subject->save();
return true;
}
是否可以将其存储在数组或会话中,并使其在视图中可访问?我想把它放到变量中,但如何处理添加按钮呢?
对于在用户会话中临时存储数据,您可以这样做
$session = Yii::$app->session;
//check if session is active
if ($session->isActive)
{
$session->set('subject', 'Maths');
}
要检索存储在会话中的数据,您可以执行如下操作
$session = Yii::$app->session;
if ($session->isActive)
{
$subject = $session->get('subject');
}
使用此链接了解有关yii2
中的会话处理的更多信息http://www.bsourcecode.com/yiiframework2/session-handling-in-yii-framework-2-0/但是,如果您的目的只是临时存储数据,以便在下一个操作或视图中可用,则可以像
这样做public function actionAddsubject($TrNo, $clientid)
{
//just showing an example of a variable that holds some data
$subject = "Maths";
//redirect to action site/main and make the $subject data available there
return $this->redirect(['site/main', 'subject' => $subject ]);
}
请注意,上面的代码将重定向到data $subject可用的action site/main。要访问site/main中的data $subject,您可以这样做
public function actionMain($subject)
{
//now you can do whatever with $subject
}