Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can i get full url to include in newsletter sent with Symfony2?

Tags:

I'm going to use Symfony2 to sent periodically a newsletter to many users. I've to include a permalink to the HTML email for those who experience problems in reading them with an email client.

Anyway, assuming that i'm sending the newsletter this way:

// 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(/* .. */); 

How can i construct the full URL (domain + controller + action + slug) to include it in a new email?

like image 659
gremo Avatar asked May 16 '12 14:05

gremo


2 Answers

With the router, of course

By default, the router will generate relative URLs (e.g. /blog). To generate an absolute URL, simply pass true to the third argument of the generate() method:

Perhaps your code might look like this

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 ); 
like image 158
Peter Bailey Avatar answered Nov 16 '22 09:11

Peter Bailey


Update with 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 
like image 43
ArGh Avatar answered Nov 16 '22 08:11

ArGh