当前位置: 技术文章>> 如何在Magento 2中编码和解码URL

文章标题:如何在Magento 2中编码和解码URL
  • 文章分类: Magento
  • 22121 阅读
系统学习magento二次开发,推荐小册:《Magento中文全栈二次开发 》

本小册面向Magento2以上版本,书代码及示例兼容magento2.0-2.4版本。涵盖了magento前端开发,后端开发,magento2主题,magento2重写,magento2 layout,magento2控制器,magento2 block等相关内容,带领您成为magento开发技术专家。


在Magento 2中编码和解码URL的步骤:

步骤1:您需要插入\Magento\Framework\Url\EncoderInterface类来编码URL,并插入\Magento\Framework\Url\DecoderInterface类来解码URL。这两个类都必须插入到构造中。我将此代码添加到自定义模块的块文件中。

<?php
 
namespace Vendor\Extension\Block;
 
use Magento\Framework\Url\EncoderInterface;
use Magento\Framework\Url\DecoderInterface;
 
class CustomBlock extends \Magento\Framework\View\Element\Template
{
    /**
     * @var EncoderInterface
     */
    protected $url_Encode;
 
    /**
     * @var DecoderInterface
     */
    protected $url_Decode;
 
    /**
     * @param EncoderInterface $url_Encode
     * @param DecoderInterface $url_Decode
     */
    public function __construct(
        EncoderInterface $url_Encode,
        DecoderInterface $url_Decode)
    {
        $this->urlEncode = $url_Encode;
        $this->urlDecode = $url_Decode;
    }
 
    public function getEncodeUrl($url)
    {
        /**
         * $url =  baseurl/mymodule/index
         * Output : pLzEyNy4wLjAuMS9tMjM0L2hlbGxvd29,
         */
        return $this->urlEncode->encode($url);
    }
 
    public function getDecodeUrl($url)
    {
        /**
         * $url :pLzEyNy4wLjAuMS9tMjM0L2hlbGxvd29,
         * Output =  baseurl/mymodule/index
         */
        return $this->urlDecode->decode($url);
    }
}

您需要在 getEncodeUrl() 和 getDecodeUrl() 中传递一个 URL 作为参数来返回 输出。

输出:

基本网址:baseurl/mymodule/index

Encode URL : pLzEyNy4wLjAuMS9tMjM0L2hlbGxvd29

解码网址:baseurl/mymodule/index

结论:

因此,通过这种方式,您可以在Magento 2中编码和解码URL。您还可以在Magento 2中将参数传递给URL。


推荐文章