【问题标题】:sending email in laravel difficulties在 laravel 困难中发送电子邮件
【发布时间】:2015-10-12 04:58:36
【问题描述】:

我正在尝试在 laravel 中发送邮件。不确定我是否正确地做到了,但我一切都基于教程,并试图让它尽可能简单。 我究竟做错了什么?它目前给我一个错误:“传递给 Illuminate\Mail\Mailer::send() 的参数 2 必须是数组类型,字符串” 如果我留下一个空的 $data 它说它未定义。我不确定如何做所有这些事情。有什么帮助吗?

 $data = "helloooo";

 Mail::send('emails.welcome', $data, function($message) { 
 $message->to('thatsmymail123@gmail.com', 'me')->subject('Welcome!'); });

【问题讨论】:

    标签: php email laravel laravel-4


    【解决方案1】:

    $data = "helloooo"; 而是使用 $data 使其成为数组。像这样 $data['message'] = "helloooo";

    由于传递给 Illuminate\Mail\Mailer::send() 的参数必须是数组类型,所以我们以数组格式传递。

    在电子邮件视图中:emails.welcome 使用 $message 来显示你的变量值。

    【讨论】:

      【解决方案2】:

      线索就在你的错误中。 "传递给Illuminate\Mail\Mailer::send() 的参数 2 必须是数组类型,给定字符串"

      您需要传递给Mail::send() 函数的数组与通常的视图呈现方式完全相同。

      例如,您可以这样做来渲染视图。

      $data['foo'] = 'bar';
      
      return View::make('my.view', $data);
      

      在您看来,您可以使用$foo 的变量。这同样适用于发送电子邮件。 Laravel 仍然需要为电子邮件呈现您的视图。为了解决你上面的问题...

      $data = ['foo' => 'bar'];
      
      Mail::send('emails.welcome', $data, function($message)
      {
          $message->to('email@example.com', 'Jon Doe')->subject('Welcome!');
      });
      

      如果您没有/不需要任何数据传递到您的视图,只需使用一个空数组。

      $data = []; // Empty array
      
      Mail::send('emails.welcome', $data, function($message)
      {
          $message->to('email@example.com', 'Jon Doe')->subject('Welcome!');
      });
      

      【讨论】:

      • 谢谢。不能跳过数组很奇怪。
      • @Arcrammer PHP 不像 Java 和其他语言那样具有方法重载。如果你想提供第三个参数,第二个必须存在。
      猜你喜欢
      • 2012-05-11
      • 1970-01-01
      • 2013-01-12
      • 2019-03-12
      • 1970-01-01
      • 2019-10-18
      • 2017-02-11
      • 2015-10-01
      • 2020-06-02
      相关资源
      最近更新 更多