Imi cer scuze dar am citit pe diagonala. Am vazut doar link-ul spre documentatia Laravel, pusa de Cosmin, nu am vazut si ca folosesti pachetul respectiv.
Nu am folosit pachetul si nici cu PHP nu am mai lucrat de un an, sper sa nu te derutez sau sa zic vreo prostie .
Daca te uiti in migratie observi ca ai o tabela mail_templates, unde se inregistreaza id-ul si unde ai si o coloana mailable.
Schema::create('mail_templates', function (Blueprint $table) {
$table->increments('id');
$table->string('mailable');
$table->text('subject')->nullable();
$table->text('html_template');
$table->text('text_template')->nullable();
$table->timestamps();
});
Mai jos in documentatie am gasit ca asa inregistrezi un template, unde se observa ca mailable este inregistrat cu numele clasei.
MailTemplate::create([
'mailable' => WelcomeMail::class,
'subject' => 'Welcome, {{ name }}',
'html_template' => '<p>Hello, {{ name }}.</p>',
'text_template' => 'Hello, {{ name }}.'
]);
Daca vrei sa ai mai multe template-uri pentru aceeasi clasa va trebui sa mai adaugi conditii si fie sa modifici modelul fie sa modifici migratia si sa mai adaugi un camp. Sau ma rog, daca ai alte idei…
return $query->where('mailable', get_class($mailable)-where>('id', id-ul template-ului));
$query->where('mailable', get_class($mailable)
- partea asta presupune ca ai un singur template pentru numele respectiv(clasa respectiva), insa probabil tu ai mai multe. De ce nu faci un dump la ce iti returneaza?
Dar cum s-a zis si mai sus, este facut sa creezi o clasa pentru fiecare template.