diff --git a/src/MailEclipse.php b/src/MailEclipse.php index 019c230..920f4c7 100644 --- a/src/MailEclipse.php +++ b/src/MailEclipse.php @@ -713,7 +713,7 @@ private static function getMailableViewData($mailable, $mailable_data) $classProps = array_diff($allProps, $traitProperties); - $withFuncData = collect($obj->viewData)->keys(); + $withFuncData = collect($obj->buildViewData())->keys(); $mailableData = collect($classProps)->merge($withFuncData); @@ -789,6 +789,10 @@ protected static function getMarkdownViewName($mailable) $property->setAccessible(true); + if (method_exists($mailable, 'content')) { + return app()->call([new $mailable, 'content'])->markdown; + } + return $property->getValue($mailable); } @@ -802,13 +806,21 @@ protected static function getMarkdownViewName($mailable) */ public static function buildMailable($instance, $type = 'call') { - $method = method_exists($instance, 'build') ? 'build' : 'render'; + $method = method_exists($instance, 'build') ? 'build' : 'content'; if ($type === 'call') { if (self::handleMailableViewDataArgs($instance) !== null) { return app()->call([self::handleMailableViewDataArgs($instance), $method]); } + if ($method == 'content') { + /** @var \Illuminate\Mail\Mailable */ + $class = new $instance; + $class->view(app()->call([new $instance, 'content'])->view); + + return $class; + } + return app()->call([new $instance, $method]); } @@ -833,7 +845,7 @@ public static function renderPreview($simpleview, $view, $template = false, $ins if (! $template) { $obj = self::buildMailable($instance); - $viewData = $obj->viewData; + $viewData = $obj->buildViewData(); $_data = array_merge($instance->buildViewData(), $viewData); foreach ($_data as $key => $value) {