Saya menemukan cara yang setara untuk ini di Magento2:
Mage::getSingleton('core/session')->setMyValue('test');
Mage::getSingleton('core/session')->unsMyValue();
Tetapkan / Dapatkan / Hapus Nilai dalam Sesi Inti:
protected $_coreSession;
public function __construct(
-----
\Magento\Framework\Session\SessionManagerInterface $coreSession
){
$this->_coreSession = $coreSession;
----
}
public function setValue(){
$this->_coreSession->start();
$this->_coreSession->setMessage('The Core session');
}
public function getValue(){
$this->_coreSession->start();
return $this->_coreSession->getMessage();
}
public function unSetValue(){
$this->_coreSession->start();
return $this->_coreSession->unsMessage();
}
Dengan cara ini kami dapat menetapkan nilai khusus jika nilai sesi kami tidak terkait dengan sesi di bawah ini:
- \ Magento \ Backend \ Model \ Session
- \ Magento \ Katalog \ Model \ Sesi
- \ Magento \ Checkout \ Model \ Session
- \ Magento \ Pelanggan \ Model \ Sesi
- \ Magento \ Newsletter \ Model \ Session
Di Magento 2 tidak ada lagi
core/session
.Ada yang ini (mungkin orang lain juga):
\Magento\Backend\Model\Session
\Magento\Catalog\Model\Session
\Magento\Checkout\Model\Session
\Magento\Customer\Model\Session
\Magento\Newsletter\Model\Session
Anda perlu membuat ketergantungan untuk sesi yang Anda butuhkan di blok atau pengontrol Anda atau apa pun.
Mari kita ambil contoh
\Magento\Catalog\Model\Session
.Kemudian Anda dapat menggunakan sesi katalog di dalam kelas seperti ini:
[EDIT]
Anda sebaiknya tidak menggunakan sesi di templat.
Anda harus membuat pembungkus di kelas blok yang dapat digunakan templat untuk menetapkan / mendapatkan nilai.
Dengan menggunakan contoh di atas, buat metode di blok
Tetapi jika Anda benar-benar ingin menggunakan sesi dalam template Anda bisa membuat pembungkus di blok Anda untuk mendapatkan sesi:
Kemudian Anda dapat melakukan ini di templat:
sumber
unsMyValue
Ini semua adalah tipe sesi di Magento 2
Sesuai standar pengkodean Magento 2 ECGM2 Anda pertama kali menggunakan kelas sesi maka Anda dapat meneruskannya ke konstruktor jika tidak, kesalahan ini akan ditampilkan
Inilah cara Anda dapat mengatur dan mendapatkan data dalam sesi
Untuk menetapkan nilai
Untuk mendapatkan nilai
Untuk Hapus nilai sesi
sumber