ম্যাজেন্টো 2 এ গ্রাহক সেশন ডেটা কীভাবে সেট করবেন এবং পাবেন


12

আমি ম্যাজেন্টো 2 সেশনের সাথে লড়াই করছি। আমি নীচে একটি নমুনা কোড হিসাবে নিয়ামক ফাইল তৈরি করেছি।

<?php
namespace vendor_name\module_name\Controller\SetGetSession;

use Magento\Framework\App\Action\Action;

class SetGetSession extends Action
{
    protected $customerSession;

    public function _construct(
        \Magento\Customer\Model\Session $customerSession
    ) {
        $this->customerSession = $customerSession;
    }   

    public function execute()
    {

    }
}

কেউ কীভাবে আমাকে ডেটা বরাদ্দ করতে এবং সেশন ভেরিয়েবল থেকে এটি পুনরুদ্ধার করতে সহায়তা করতে পারেন?

ধন্যবাদ.

উত্তর:


19

আপনি সেট করে এবং ব্যবহার করে গ্রাহক সেশন পেতে পারেন Magento\Customer\Model\Session

protected $customerSession;

public function __construct(   
    \Magento\Customer\Model\Session $customerSession
){
    $this->customerSession = $customerSession;
}

$this->customerSession->setMyValue('test');
$this->customerSession->getMyValue();

অথবা অবজেক্ট ম্যানেজারের মাধ্যমে।

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->create('Magento\Customer\Model\Session');
$customerSession->setMyValue('test');
$customerSession->getMyValue();
  1. গ্রাহক সেশনে একটি তথ্য সেট করা:
$om = \Magento\Framework\App\ObjectManager::getInstance(); $session =
$om->get('Magento\Customer\Model\Session');  
$session->setTestKey('test value');
  1. গ্রাহক অধিবেশন থেকে একটি তথ্য পাওয়া:
$om = \Magento\Framework\App\ObjectManager::getInstance();  $session =
$om->get('Magento\Customer\Model\Session');
echo $session->getTestKey();

সেশনটি Magento\Framework\Session\SessionManagerপরিচালনা করার জন্য অধিবেশন মূল বর্গকে বাড়িয়ে দেবে ।

আশা করি এই উত্তরটি আপনাকে সহায়তা করবে।


প্রদত্ত সেট এবং সেশন কোডটি পেয়ে "নূলে একটি সদস্য ফাংশন সেটমাইভ্যালু () এ কল করুন" হিসাবে আমি ত্রুটি পাচ্ছি।
অনিকেত শিন্ডে

অবজেক্ট ম্যানেজার দ্বারা সংশোধিত উত্তর চেক করুন।
কৃষ্ণ ইজ্জাদ

সাহায্যের জন্য ধন্যবাদ. এটি অবজেক্ট ম্যানেজারের সাথে কাজ করে তবে মনে হচ্ছে এটি পৃষ্ঠা লোডের সময় বাড়িয়ে দিচ্ছে। প্রশ্ন পোস্ট করার আগে আমি চেষ্টা করেছিলাম।
অনিকেত শিন্ডে

3

আপনার \Magento\Customer\Model\Sessionগ্রাহক সেশনে সেট সেট করতে এবং ডেটা পাওয়ার জন্য ক্লাসটি ইনজেক্ট করতে হবে

নির্ভরতা ইনজেকশন ব্যবহার করে

protected $customerSession;

public function _construct(
    ...
    \Magento\Customer\Model\Session $customerSession
    ...
) {
    ...
    $this->customerSession = $customerSession;
    ...
}   

public function setValue()
{
    return $this->customerSession->setMyValue('YourValue'); //set value in customer session
}

public function getValue()
{
    return $this->customerSession->getMyValue(); //Get value from customer session
}

অবজেক্ট ম্যানেজার ব্যবহার করে

$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
$customerSession = $objectManager->get('Magento\Customer\Model\Session');

$customerSession->setMyValue('YourValue'); //set value in customer session
echo $customerSession->getMyValue(); //Get value from customer session
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.