Как вызвать сервис из файла ветки, чтобы показать зашифрованные параметры в URL? - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть тег привязки:

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

, который дает URL как:

локальный: 9000 / редактировать учитель / 1

Здесь я хочу зашифровать параметр «1», поскольку не хочу, чтобы пользователь видел идентификатор учителя. Поэтому я сделал сервис для шифрования этого идентификатора.

Сервис :

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:
    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

, что дает мне следующую ошибку:

Ключ хеша должен быть строкой в ​​кавычках, числом, именем или выражением, заключенным в скобки (неожиданный токен "пунктуация" значения "{". **

...