【问题标题】:Data array not send in email view数据数组未在电子邮件视图中发送
【发布时间】:2013-11-29 14:42:41
【问题描述】:

我正在使用 Laravel 4 发送电子邮件:

$data = Input::all();
Mail::queue(array('text' => 'e-Text', 'html' => 'e-Html'), $data ,
                 function($message) use ($data) {
                     $message->to($temp['data'], $data['nom'])
                             ->subject('Votre message sur http://mon-site.fr a bien été envoyé !');
                 }
           );

消息在 Iron.io 中排队。电子邮件发送给收件人,但 $data 数组没有传递给电子邮件视图。

我的日志文件出现此错误:

[2013-11-29 15:52:41] production.ERROR: exception 'ErrorException' with message 'Undefined variable: data' in /homez.218/famillen/test/laravel/app/storage/views/cdfda980a9a63595089057de30712093:12

在我配置队列之前它运行良好。有什么想法吗?

代码视图(刀片模板):

<body style="background-color: #FFDB73; padding: 10px;">
    <img src="{{$message->embed('email/titre.png')}}" style="margin: 7px 0px 0px 7px"/>
    <img src="{{$message->embed('email/banniere.png')}}" 
         style="-webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px;
         max-height: 3em; width: 70%;"/>
    <section style="margin-left: 10px;">
        <h2>Objet : Vous avez envoyé un message depuis http://monde-fimormidable.fr</h2>
        <p>Bonjour, et merci pour l'intérêt que vous portez à mon site !</p>
        <p>Je vous confirme que j'ai bien reçu votre message. Je vais essayer d'y répondre le plus vite possible.</p>
        <p>Pour rappel voici son contenu :</p>
        <blockquote style="background-color: #FFCE40; padding: 10px;">
            <p><strong>Nom : </strong>{{{$data['nom']}}}</p>
            <p><strong>Email : </strong>{{{$data['email']}}}</p>
            <p><strong>Téléphone : </strong>{{{$data['telephone']}}}</p>
            <p><strong>Motif de contact : </strong>{{{Config::get('enum.motif_contact.'.$data['motif'])}}}</p>
            <p><strong>Message : </strong>{{{$data['message']}}}</p>
        </blockquote>
        <p>A très bientôt sur <a href="http://monde-fimormidable.fr">http://monde-fimormidable.fr</a> !</p>
        <p style="margin-left: 30px;">Amandine</p>
        <p style="font-size: 0.8em; font-style: italic;">PS : Ceci est un message automatique, merci de ne pas y répondre.</p>
    </section>
</body>

【问题讨论】:

  • 请添加视图文件
  • 我只是添加它@Andreyco

标签: laravel laravel-4 swiftmailer iron.io


【解决方案1】:

我想我已经理解了这个问题(总共有两个问题):

如果数据通过关联数组传递给视图:

$data = array('k1' => 'v1', 'k2' => 'v2')
Mail::queue('view.email', $data , function($message){...});

您应该使用以下方式访问视图中的值:

echo $k1;
echo $k2;

并且在$data 数组中不能有任何$message 键,因为闭包的$message 变量也会传递给视图。

【讨论】:

  • 完全正确。这就是它的工作原理。数组中的键成为视图中的变量。
  • 有效!邮件通知也是如此。在 toMail() 方法中,它看起来像: return (new MailMessage)->view('emails.default-view', ['foo' => 'bar'])->{rest of the message here} ;在视图上,您​​可以将 foo 作为变量 {{ $foo }} 访问,该变量显示“bar”。
猜你喜欢
  • 2020-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-17
  • 2016-04-24
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多