如何从树枝文件调用服务以在URL中显示加密的参数?

时间:2019-04-03 09:05:51

标签: php twig symfony4

我有一个锚标记:

a href={{ path('edit_teacher', { slug: teacher.id}) }}>Edit</a

给出如下网址:

  

localhost:9000 / edit-teacher / 1

在这里,我要加密参数“ 1”,因为我不希望用户看到老师的ID。因此,我提供了一项服务来对该ID进行加密。

服务

namespace App\Service;

class EncryptGenerator
{
    /**
     * This function incrypts the data provided.
     * @param: int/string.
     */
    public function incryptData($data)
    {
        $incryptedData = convert_uuencode($data);
        return $incryptedData;
    }

    /**
     * This function decrypts the strings provided.
     * @param: string. 
     */
    public function decryptedData($string)
    {
        $decryptedData = convert_uudecode($string);
        return $decryptedData;
    }
}

我还将此服务添加到了twig.yaml中的twig文件中。

twig:
    default_path: '%kernel.project_dir%/templates'
    debug: '%kernel.debug%'
    strict_variables: '%kernel.debug%'
    form_themes: ['bootstrap_4_layout.html.twig']
    globals:
        my_service: "@App\\Service\\EncryptGenerator"

最后, 我无法通过我的树枝文件调用此服务,以下是我要锚定标签的内容:

a href={{ path('edit_teacher',{ my_service.incryptData( slug: teacher.id }) }) }}>Edit

这给了我以下错误:

  

哈希键必须是带引号的字符串,数字,名称或用括号括起来的表达式(值“ {”的意外标记“标点”。**

0 个答案:

没有答案