2016-09-16 83 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 
}