В классе Illuminate\Mail\Markdown
строка 64
return new HtmlString(($inliner ?: new CssToInlineStyles)->convert(
$contents, $this->view->make('mail::themes.'.$this->theme)->render()
));
Похоже, что $this->theme
- пустая строка
Теперь класс уже определяет свойство в строке 24
/**
* The current theme being used when generating emails.
*
* @var string
*/
protected $theme = 'default';
Это означает, что вы могли переопределить это свойство пустой строкой или, возможно, пустым значением в вашей электронной почте для уценки
Если вы публикуете компоненты с помощью
php artisan vendor:publish --tag=laravel-mail
You 'Я посмотрю файл CSS в resources/views/vendor/mail/html/themes
с именем default.css
Я нашел способ воспроизвести эту ошибку специально, чтобы иметь класс Mailable, подобный такому:
Run
php artisan make:mail OrderShipped --markdown=emails.orders.shipped
Затем переопределите свойство темы пустой строкой
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class OrderShipped extends Mailable
{
use Queueable, SerializesModels;
protected $theme = ''; // <--- HERE
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('emails.orders.shipped');
}
}
Теперь отправьте электронное письмо
use App\User;
use App\Mail\OrderShipped;
Route::get('/', function () {
\Mail::to(User::first())->send(new OrderShipped());
});
И вы получите ту же ошибку
![enter image description here](https://i.stack.imgur.com/pEka9.png)
Решение здесь состоит в том, чтобы либо удалить свойство protected $theme = '';
, либо установить его на default
Надеюсь, это поможет