2010-07-27 31 views
47

Tôi đang sử dụng Magento và cố lưu một giá trị trong phiên như sau trong tệp index.php của nó, nhưng giá trị không được giữ lại.Làm cách nào để lưu giá trị trong biến phiên của riêng tôi trong Magento?

$_SESSION['myvar'] = '1'; 

Làm cách nào để thực hiện?

Cảm ơn

+0

tôi đã cùng một vấn đề khi sử dụng 'setcookie()' trực tiếp, như 'cái lõi/mô hình cookie' xử lý thiết lập đó, và thấy nó được ghi đè những giá trị của tôi. – DWils

Trả lời

74

Hãy nói rằng bạn muốn lưu các giá trị "Hello world" đến "hoan nghênh thông báo" biến trong phiên. Mã sẽ là:

$inputMessage = 'Hello World'; 
Mage::getSingleton('core/session')->setWelcomeMessage($inputMessage); 

Bây giờ bạn muốn lặp lại "thông điệp chào mừng" ở một nơi khác trong mã/trang web của bạn.

$outputMessage = Mage::getSingleton('core/session')->getWelcomeMessage(); 
echo $this->__($outputMessage); 
+16

Đáng nói đến cách xóa (bỏ đặt) biến phiên: Mage :: getSingleton ('core/session') -> unsWelcomeMessage(); "uns" là viết tắt của unset. –

+3

Tôi biết đó là 5 năm trước, nhưng THANK YOU! – Paradoxetion

32

Sau khi dụ được đưa ra bởi Ali Nasrullah, tôi sẽ làm:

$session = Mage::getSingleton("core/session", array("name"=>"frontend")); 
// set data 
$session->setData("device_id", 4); 
// get data 
$myDeviceId = $session->getData("device_id"); 

Hãy chắc chắn rằng bạn bao gồm [Mage-root] /app/Mage.php befor gọi đoạn mã ở trên!

@Ali Nasrullah: Chuyển giá trị của thiết bị: id làm thông số thứ hai của hàm setData.

+1

Tôi đã thử ở trên nhưng không thể làm cho nó hoạt động. Cách gọi /app/Mage.php. Theo mặc định, index.php bao gồm: require_once $ mageFilename; Như thế đủ chưa? –

6
frontend: Mage::getSingleton('core/session')->setYourNameSession($session_value); 

backend: Mage::getSingleton('admin/session')->setYourNameSession($session_value); 
Các vấn đề liên quan