Я пытаюсь отобразить цикл @foreach в шаблоне уценки. Но я не заставляю его работать. Я нашел это Laravel - используйте @foreach в почтовой рассылке , но это не взяло меня дальше.
Я изучал документы по Laravel, но, похоже, я не могу найти свою проблему.
Я пытаюсь создать письмо со всей информацией из таблицы поставщиков. Поэтому я использую класс поставщика.
Может быть, кто-то может открыть мне глаза или дать подсказку в правильном направлении.
Маршрут:
Route::get('/mail',function(){
$suppliers = App\ModelSupplier\Supplier::all();
return new App\Mail\Supplier\Certificates($suppliers);
});
Mail-Class:
namespace App\Mail\Supplier;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use App\ModelSupplier\Supplier;
class Certificates extends Mailable
{
use Queueable, SerializesModels;
public $supplier;
public function __construct(Supplier $supplier)
{
//
$this->supplier = $supplier;
}
public function build()
{
return $this->markdown('email.supplier.test');
}
}
Markdown-файл:
# Certificate:
@component('mail::table')
|No. | Company | Address
|:--------|:--------|----------:
@foreach($supplier as $detail)
| {{$detail->no}} | {{$detail->company}} | {{$detail->address}}
@endforeach
@endcomponent
Я получаю эту ошибку:
Argument 1 passed to App\Mail\Supplier\Certificates::__construct()
must be an instance of App\ModelSupplier\Supplier, instance of
Illuminate\Database\Eloquent\Collection given, called in C:\xampp\htdocs
\pps\routes\mail.php on line 7
Я совершенно не прав?
Заранее спасибо.