У меня есть тег привязки:
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
, что дает мне следующую ошибку:
Ключ хеша должен быть строкой в кавычках, числом, именем или выражением, заключенным в скобки (неожиданный токен "пунктуация" значения "{". **