magento - 在后端 Magento 中显示前端类别 URL
问题描述
嗨,我怎样才能在后端检索类别 url 的值?我期望 url 值等于前端中的 url 而不是后端中的 url。有没有办法在 Magento 2 中实现这一点?
解决方案
好的,我找到了答案。解决方案是使用 Magento 中提供的 App/Emulator。这个想法是在执行所需的前端类别 URL 检索之前启动模拟,并在完成后关闭模拟。
以下是有关如何实现它的链接App Emulation。不知道解决问题这么简单。下面是我的代码的样子
class MenuCategory extends \Magento\Framework\Model\AbstractModel implements \Magento\Framework\DataObject\IdentityInterface
{
public function getStoreCategories($storeManager, $emulator)
{
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$emulator->startEnvironmentEmulation(null, \Magento\Framework\App\Area::AREA_FRONTEND, true);
$categoryFactory = $objectManager->create('Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$categories = $categoryFactory->create()
->addAttributeToSelect('*')
->setStore($storeManager->getStore())
->addAttributeToFilter('level', array('eq' => 2))
->addIsActiveFilter()
->addAttributeToSort('position', 'asc');
foreach ($categories as $category) {
echo $category->getUrl() . " - " . $category->getUrl() . "\n";
}
$emulator->stopEnvironmentEmulation();
return $content;
}
}
所以这里的想法是实例化模拟器并使magento认为你将像在前端一样修改或执行因此代码\Magento\Framework\App\Area::AREA_FRONTEND当你关闭环境仿真时它会去回到你是在 adminhtml 还是前端
推荐阅读
- python - 不可读的笔记本:FileNotFoundError(2, '没有这样的文件或目录')
- elasticsearch - Elasticsearch:使用正则表达式搜索包含破折号或减号的文本
- python - 我如何在 matplotlib 中使用标准偏差作为我的错误界限
- file - 将批处理文件应用于文件夹/路径中的所有文件,实际上仅在设置的文件中工作
- reactjs - 如何从 React 组件中提取特定的 TypeScript 道具类型?
- python - plotly:不要连接 plotly express 折线图中的间隙
- javascript - 如何使用数百个脚本缩小 index.html 文件?
- python - 使用 RSA 验证消息的真实性
- python - 如何使用 setStyleSheet 更改 QLabel 小部件的字体大小(百分比)?
- javascript - 如何为带有百分比按钮的计算器编写 JavaScript 代码