2016-09-16 86 views
0

您好我有一个用户点击添加按钮然后将信息保存到数据库然后通过另一个函数获取它的过程。但是我想要做的就是跳过数据库保存,然后把它放在一个数组或会话中(无论什么可能),然后用它来放置一个视图。这可能吗?从函数中获取值后放入数组/会话

这里是我当前的代码:视图

添加按钮:

<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; 

} 

是否可以将其存储在数组或会话中并使其在视图中可访问?我想象把它放在变量中,但我将如何处理添加按钮?

回答

0

对于用户会话数据的临时存储,您可以像

$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 ]); 


} 

请注意,上面的代码会重定向到作用部位/主,其中数据$ subject可用。要访问site/main中的数据$ subject,您可以像

public function actionMain($subject) 
{ 
    //now you can do whatever with $subject 
}