수색…


yii2의 세션

세션 클래스 가져 오기

use  yii\web\Session;

세션 만들기

$session = Yii::$app->session;
$session->open(); // open a session
$session->close();  // close a session

세션 변수에 값을 저장하십시오.

$session = Yii::$app->session;

$session->set('name', 'stack');
OR
$session['name'] = 'stack';
OR
$_SESSION['name'] = 'stack';

세션 변수에서 값을 가져옵니다.

$name = $session->get('name');
OR
$name = $session['name'];

세션 변수 제거

$session->remove('name');
OR
unset($session['name']);
OR
unset($_SESSION['name']);

$session->destroy(); // destroy all session 

모든 세션 변수 제거

$session->removeAll();

세션 변수 확인

$session->has('name')
OR
isset($session['name'])
//both function return boolean value [true or false]

세션 플래시

세션 플래시 설정

$session = Yii::$app->session;
$session->setFlash('error', 'Error in login');

세션 플래시 가져 오기

echo $session->getFlash('error');

세션 확인 플래시

$result = $session->hasFlash('error');

세션 플래시 제거

$session->removeFlash('error');

모든 세션 플래시 변수 제거

$session->removeAllFlashes();

직접 세션 변수 사용

세션 변수 설정 및 가져 오기

\Yii::$app->session->set('name','stack');
\Yii::$app->session->get('name');

세션 플래시

\Yii::$app->getSession()->setFlash('flash_msg','Message');
\Yii::$app->getSession()->getFlash('flash_msg');

배열 인 세션 변수 생성 및 편집

세션 변수를 변수로 저장하십시오.

$session = Yii::$app->session;

$sess = $session['keys'];

그런 다음 원하는 배열 값을 만들거나 업데이트하십시오.

$sess['first'] = 'abc';

마지막으로 세션 변수에 저장합니다.

$session['keys'] = $sess

나중에 다시 방문하려면 URL 기억하기

사용 사례 : 다른 (관련) 컨트롤러에 새 레코드를 추가 한 후 돌아가려면 현재 URL을 기억하십시오. 예를 들어, 편집중인 인보이스에 추가 할 새 연락처를 생성하십시오.

InvoiceController / actionUpdate :

Url::remember(Url::current(), 'returnInvoice');

ContactController / actionCreate :

if ($model->save()) {
    $return = Url::previous('returnInvoice');
    if ($return) {
        return $this->redirect($return);
    }
    // ...
}

완료되면 기억 된 URL을 재설정 할 수 있습니다.

InvoiceController / actionUpdate :

if ($model->save()) {
    Url::remember(null, 'returnInvoice');
    // ...
}

키 이름 -이 예의 returnInvoice -는 선택적입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow