Magento2 Wie erhalte ich den Namen der Region anhand der ID?

7

Wie in magento1 gibt es eine Methode, um den Regionsnamen anhand der ID abzurufen.

$regionModel = Mage::getModel('directory/region')->load('region_id'); 
$region = $regionModel->getName();

Ich habe die jeweilige Klasse ( Magento\Directory\Model\Region) überprüft , dort aber keine Methode gefunden.

Kul
quelle

Antworten:

11

Sie können im Grunde immer noch dasselbe tun wie load(), save()und delete()Aktionen sind in abstrakten Modellklassen weiterhin vorhanden. Sie sind jedoch deprecatedals magento markiert, wenn CRUD-Methoden in separate repositoriesKlassen verschoben werden. Da das Verzeichnismodell sie jedoch noch nicht hat, gibt es zwei Möglichkeiten, die Region zu laden.

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$region = $objectManager->create('Magento\Directory\Model\Region')
                        ->load($regionId);

oder mit Abholung

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$region = $objectManager->create('Magento\Directory\Model\ResourceModel\Region\Collection')
                        ->addFieldToFilter('region_id', ['eq' => $regionId])
                        ->getFirstItem();

Dies ist nur ein Proof-of-Concept-Code. Von der direkten Verwendung des Objektmanagers wird abgeraten. Daher sollten Sie in Ihrem eigentlichen Code die richtige Klasse mit Abhängigkeitsinjektion in die __construct()Klasse einfügen .

Zefiryn
quelle
Großartig. Es ist Arbeit.
Kul