将表单输入数据传递到邮件视图 - Laravel

时间:2015-01-29 17:19:13

标签: php forms email laravel

我正在制作一份发送电子邮件的表格。

目前它是一个通用刀片形式,指向/ 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
    });
});

然后试用这个我在我的观点中尝试过:(在我的表格中有一个字段名称'subject')

echo Input::get("subject");

我实际上有两个问题。 (我正在使用日志驱动程序)

1)电子邮件未显示在日志中,只显示[] []
2)数据既没有显示也没有显示空白。

如果我只是:

echo "hello!";

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

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

然后在视图中:

echo $test;

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

2 个答案:

答案 0 :(得分:0)

在这里,试试这个:

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

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

答案 1 :(得分:0)

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

并且在您看来,你有

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

这就是我自己使用它并且它完美无缺。