【问题标题】:Passing form input data to the mail view - Laravel将表单输入数据传递给邮件视图 - Laravel
【发布时间】:2015-01-29 17:19:12
【问题描述】:

我正在制作一个将发送电子邮件的表单。

目前它是指向 /admin/newemail 的通用刀片表单

我有我的路线,并且为了测试邮件是从该路线发送的:

Route::get('admin/newemail', function()
{
    $email = 'email@hotmail.com';
    $data = Input::all();
    Mail::send('emails.newemail', $data, function($message) use ($email){
        // $message details
    });
});

然后在我看来我尝试过这个:(我的表单中有一个“主题”的字段名称)

echo Input::get("subject");

我实际上有两个问题。 (我用的是日志驱动)

1) 邮件未显示在日志中,仅显示 [] []
2) 数据既没有显示,也没有显示。

如果我有:

echo "hello!";

然后日志将输出你好,同样如果我将我的邮件数据变量更改为一个数组:

$data = array('test' => 'test');

然后在视图中:

echo $test;

这也有效。但我希望它从我的表单中获取我的输入。

【问题讨论】:

  • 您的<form> 使用的是什么method?发布您的表单代码。如果表单数据没有被发送回服务器,那么问题可能来自那里。

标签: php forms email laravel


【解决方案1】:

在这里,试试这个:

Mail::send('emails.welcome', array('key' => 'value'), function($message)
{
    $message->to('foo@example.com', 'John Smith')->subject('Welcome!');
});

这里,key 是你想给的任何名字,value 是你要分配的数据,它可以是表单数据,也可以来自数据库。

现在,在您的视图/电子邮件中创建一个文件作为welcome.blade.php 并获取通过邮件函数传递的值:

{{ $key }} 

以上是表示数据的刀片格式。

有关邮件的更多信息,请访问this,有关刀片模板,请访问here

看看,如果这对你有帮助。

【讨论】:

  • 这与我在问题中给出的示例相同。我可以很好地对数组进行硬编码,但我希望视图中可用表单的所有输入。
  • 尝试:$data = Input::only('element1', 'element2', 'element3'),然后在邮件函数中传递该数组。
【解决方案2】:
Mail::send('emails.welcome', Input::all(), function($message)
{
    $message->to('foo@example.com', 'John Smith')->subject('Welcome!');
});

在你看来你有

{{Input::get("subject")}}

这是我自己用的,效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多