我对php和Laravel还很陌生,正在尝试发送邮件,但是我的邮件模板似乎有些问题。
在我的控制器中,我已经从表单接收到了请求,并将信息存储在一个数组中,像这样...
$data = array(
'name' => $request->name,
'mail'=> $request->mail,
'message'=> $request->message,
'category'=> $request->category,
'company'=>$request->company
);
如果我对变量$data进行print_r操作,它会打印出类似于以下内容:
Array ( [name] => Boby [mail] => boby@hotmail.com [message] => call me back [category] => 2 [company] => Test )
我使用以下代码部分发送我的电子邮件:
Mail::send('mail', $data, function($message) use ($fromEmail, $fromName)
{
$message->from($fromEmail, $fromName);
$message->to('myemail@gmail.com', 'myname')->subject('subject');
);
但是当它到达刀片视图时,我收到了这个错误...
ErrorException (E_ERROR)
Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) (View: /home/dave/NetBeansProjects/InspectionBelaire/resources/views/mail.blade.php)
这里是完整的帖子和Blade视图。
MailController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Http\Request;
use Mail;
class MailController extends BaseController
{
public function send(Request $request) {
$fromEmail = $request->mail;
$fromName = $request->name;
$data = array(
'name' => $request->name,
'mail'=> $request->mail,
'message'=> $request->message,
'category'=> $request->category,
'company'=>$request->company
);
Mail::send('mail', $data, function($message) use ($fromEmail, $fromName)
{
$message->from($fromEmail, $fromName);
$message->to('otid91@gmail.com', 'dotis')->subject('Nouvelle soumission en ligne');
});
}
}
mail.blade.php
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div>
{{name}}
{{mail}}
{{message}}
{{category}}
{{company}}
</div>
</body>
</html>
$
符号。 - aynber{{ .. }}
标签之间的任何代码都会被解释为要回显的 PHP 代码。因此,变量名前需要有$
字符,就像在 PHP 中一样。所以{{ $name }}
编译为<?php echo $name; ?>
,这就是为什么<?php echo name ?>
会抛出错误,因为它不是有效的 PHP 代码(当评估echo name
片段时,解释器会假定没有$
的标识符是常量)。 - Bogdan