url - new - symfony 4 swiftmailer
¿Cómo puedo obtener la URL completa para incluir en el boletín enviado con Symfony2? (3)
Voy a utilizar Symfony2 para enviar periódicamente un boletín a muchos usuarios. Debo incluir un enlace permanente al correo electrónico HTML para aquellos que tengan problemas al leerlos con un cliente de correo electrónico.
De todos modos, asumiendo que estoy enviando el boletín de esta manera:
// Assume success and create a new SentMessage to store and get permalink
$sent = new SentMessage();
$sent->setRecipients(/* ... */);
$sent->setSubject(/* ... */);
$sent->setContent(/* ... */);
// Get the slug for the new sent message
$slug = $sent->getSlug(); // Like latest-product-offers-546343
// Construct the full URL
// e.g. http://mydomain.com/newsletter/view/latest-product-offers-546343
// Actually send a new email
$mailer->send(/* .. */);
¿Cómo puedo construir la URL completa (domain + controller + action + slug) para incluirla en un nuevo correo electrónico?
Actualiza con Symfony 3:
use Symfony/Component/Routing/Generator/UrlGeneratorInterface;
$this->generateUrl(''blog_show'', array(''slug'' => ''my-blog-post''), UrlGeneratorInterface::ABSOLUTE_URL);
// http://www.example.com/blog/my-blog-post
Con el router , por supuesto.
De forma predeterminada, el enrutador generará direcciones URL relativas (por ejemplo,
/blog
). Para generar una URL absoluta, simplemente pase el tercer argumento del métodogenerate()
:
Quizás tu código se vea así
Symfony2
$url = $router->generate(
''slug_route_name'',
array(''slug'' => $sent->getSlug()),
true // This guy right here
);
Symfony3
use Symfony/Component/Routing/Generator/UrlGeneratorInterface;
$url = $router->generate(
''slug_route_name'',
array(''slug'' => $sent->getSlug()),
UrlGeneratorInterface::ABSOLUTE_URL // This guy right here
);
RAMITA
Si esto está dentro de una plantilla de ramita, use url(''your route'')
lugar de path(''your route'')
para obtener la URL absoluta.