微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在布局中的Laravel 5.3视图中包含PHP变量

基于Laravel通知电子邮件模板,这是我正在尝试做的事情.

我尝试使用变量进行电子邮件布局,以便在我的布局中定义一些样式,但可以在我的电子邮件视图中访问.

这是一个例子:

电子邮件/ layout.blade.PHP

<!DOCTYPE html>
<html>
<head> [...]
</head>
@PHP
$style = ['body' => 'font-size:12px;color:#000;', 'paragraph' => 'font-size:10px;color:#eee;'];
@endPHP
<body style="{{ $style['body'] }}">
@yield('content')
</body>
</html>

在我的电子邮件视图中:

@extends('emails.layout')

@section('content')

<p style="{{ $style['paragraph'] }}">
   Hi there!
</p>

@endsection

但这不起作用,因为我的部分无法访问$style变量.

所以,我使它工作的唯一方法是在我的布局和我的视图中包含一个PHP文件,我很确定这不是我应该用Laravel做的方式……

<?PHP include_once(base_path('resources/views/emails/variables.PHP')); ?>

有没有办法实现这个目标?
多谢你们!

解决方法:

理想情况下,您不应该尝试以这种方式包含PHP变量.从控制器返回视图时,您应该传递它呈现视图所需的所有变量:

class YourController
{
    public function yourMethod()
    {
        $styles = getYourStyles();

        return view('emails.view')->with([
            'styles' => $styles
        ]);
    }
}

这将使您的样式在整个视图中的$styles变量中可用.

或者,您可以使用配置来容纳变量,然后您可以在需要时随时访问它们.

在config / styles.PHP

return [
    'paragraph' => 'font-size: 12px; font-weight: bold;'
];

在您的模板中:

<p style="{{ config('styles.paragraph') }}">

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐