https://github.com/jdtsoftware/laravel-email-templates
Laravel 5 database driven email templates
https://github.com/jdtsoftware/laravel-email-templates
email laravel-5-package php templates
Last synced: 5 months ago
JSON representation
Laravel 5 database driven email templates
- Host: GitHub
- URL: https://github.com/jdtsoftware/laravel-email-templates
- Owner: jdtsoftware
- Created: 2017-03-18T22:37:21.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2018-06-09T22:29:59.000Z (about 8 years ago)
- Last Synced: 2025-08-13T16:59:38.048Z (11 months ago)
- Topics: email, laravel-5-package, php, templates
- Language: PHP
- Homepage:
- Size: 23.4 KB
- Stars: 22
- Watchers: 7
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://styleci.io/repos/85436471)
# Laravel Email Templates
Database driven email templates for >= Laravel 5.4 and PHP 7.
## Configuration
First register the service provider in config/app.php:
```php
'providers' => [
# ...
JDT\LaravelEmailTemplates\ServiceProvider::class,
],
```
Then, in the same file, add the facade to the aliases config:
```php
'aliases' => [
# ...
'EmailTemplate' => JDT\LaravelEmailTemplates\Facades\EmailTemplates::class,
]
```
Next, run the migrations:
```
$ php artisan migrate
```
This will set up 2 tables; email_template and email_layout.
## Usage
The package is built in such a way that it plays nicely with the existing Laravel Mailer functionality.
Given a template existing in the above table with the handle 'registration', email can be sent simply as below:
```php
$mail = \EmailTemplate::fetch('registration', ['name' => 'Jon']);
\Mail::to('foo@bar.com', $mail);
```
You can of course pass the language to translate the chosen email, providing you have created an email for that
handle/language combination.
```php
$mail = \EmailTemplate::fetch('registration', ['name' => 'Jon'], 'es');
\Mail::to('foo@bar.com', $mail);
```
This package doesn't rely on a templating engine such as Blade or Twig to handle any
of the email messages, but does provide it's own view class adhering to Laravel contracts.
This means that you can pass data to the email just as you would any other view, without
having to worry about the choice of templating package you use elsewhere in your project.
```php
$mail = \EmailTemplate::fetch('registration', ['first_name' => 'Jon']);
$mail->with('last_name', 'Braud');
$mail->with([
'verify_url'=> 'https:/....',
'signup_time' => \Carbon\Carbon::now()->toDateTimeString()
]);
\Mail::to('foo@bar.com', $mail);
```