Laravel-更改包的降价组件路径
我正在开发一个使用Laravel7的软件包,在这个软件包中我会有电子邮件 我想使用降价电子邮件,因此我发布了以下视图:Laravel-更改包的降价组件路径,laravel,Laravel,我正在开发一个使用Laravel7的软件包,在这个软件包中我会有电子邮件 我想使用降价电子邮件,因此我发布了以下视图: php artisan vendor:publish --tag=laravel-mail 我希望这些视图嵌入到我的包中,所以我只需将/resources/views/vendor/mail复制到/package/packageAuthor/packageName/resources/views/vendor/mail 但是我如何让我的应用程序为我的软件包加载组件呢 我知道我
php artisan vendor:publish --tag=laravel-mail
我希望这些视图嵌入到我的包中,所以我只需将/resources/views/vendor/mail
复制到/package/packageAuthor/packageName/resources/views/vendor/mail
但是我如何让我的应用程序为我的软件包加载组件呢
我知道我可以编辑configmail.php
:
'markdown' => [
'theme' => 'default',
'paths' => [
base_path('package/packageAuthor/packageName/resources/views/vendor/mail'),
],
],
但是,当我想在其他Laravel项目中导入包时,如何使该项目使用我的组件?不修改配置
我在
Markdown
类中看到了这个函数:loadComponents from
,但是我如何使用它呢?好吧,现在我使用一个超类,它似乎可以工作:
<?php
namespace Lpa\Common\Illuminate;
use Illuminate\Container\Container;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Markdown;
class MailableLpa extends Mailable
{
/**
* Override buildMarkdownView() to define new components path
*
* @return array
*
* @throws \ReflectionException
* @throws \Illuminate\Contracts\Container\BindingResolutionException
*/
protected function buildMarkdownView()
{
/** @var Markdown $markdown */
$markdown = Container::getInstance()->make(Markdown::class);
// use package resources path
$markdown->loadComponentsFrom([
__DIR__. '/../../resources/views/vendor/mail'
]);
$data = $this->buildViewData();
return [
'html' => $markdown->render($this->markdown, $data),
'text' => $this->buildMarkdownText($markdown, $data),
];
}
}
工作完美!谢谢