【问题标题】:Can I Use Laravel's Blade Directive in My Controller?我可以在控制器中使用 Laravel 的 Blade 指令吗?
【发布时间】:2017-07-21 07:51:52
【问题描述】:

我想在我的控制器中使用刀片指令,在这种情况下,我创建了一个自定义电子邮件模板,其中从数据库中检索电子邮件消息和一个我可以编写自己的标签 [app_name], [button url=my url]Text[/button], etc 的电子邮件消息。

当我写 [app_name] 时,它将是“站点名称”,当我写 [button url=my url]Text[/button] 时,它将调用 @component('mail::button', ['url'=>'my url'])Text@endcomponent

那么,我可以在控制器中使用 laravel Blade 吗?

【问题讨论】:

  • 你不能(至少不能直截了当)也不应该,控制器不应该对表示元素负责。只需根据您的需要创建一个视图并将参数从控制器传递到视图。您可以通过$view= view(myview)->with(..) 进行查看,然后使用它来做任何您需要的事情(例如$view->render() 以获得编译的标记)。
  • 但是,您有其他解决方案吗?本质上,我想发送一封带有 Laravel 默认按钮组件的电子邮件。
  • 我不明白这个问题。 laravel 中默认的电子邮件系统允许您使用刀片模板作为内容发送电子邮件。 Email::send("view.name", [ viewdata ], function ($mail) { /* do more things to the mail object */ });

标签: php laravel-5 laravel-blade


【解决方案1】:

您可以将 array 传递给刀片文件。看看下面的代码

$data['app_name'] = '你的应用名称'; return $this->view('emails.orders.shipped', $data);

现在您可以在刀片中访问变量 $app_name

【讨论】:

  • 感谢您的回复,但我不是这个意思
猜你喜欢
  • 2015-09-07
  • 2016-10-09
  • 1970-01-01
  • 2018-07-25
  • 2017-03-09
  • 2015-11-14
  • 2019-09-06
  • 2016-12-05
  • 2013-06-04
相关资源
最近更新 更多