ম্যাজেন্টো 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.