我有一个表单,可以在其中输入到, ,主题和消息。提交后,它将发送电子邮件到指定的客户端(收件人)。
我创建了一个 Mailable ,并且在控制器中执行了类似的操作
Mail::to($request['to'])->send(new SendMail($request['from'], $request['subject'], $request['message']));
这是我的可寄信_constructor
public function __construct($from, $sub, $msg)
{
$this->from = $from;
$this->sub = $sub;
$this->msg = $msg;
}
这是构建方法
public function build()
{
return $this->from($address = $this->from, $name='Company Support')
->subject($this->sub)
->view('emails.sendmail');
}
在我的日志文件中,我收到了类似的错误
[]字符串{“ exception”:“ [object]不支持运算符 (Symfony \ Component \ Debug \ Exception \ FatalThrowableError(代码:0): 的字符串不支持[]运算符 C:\ xampp \ htdocs \ shopvel_ \ vendor \ laravel \ framework \ src \ Illuminate \ Mail \ Mailable.php:582) ....
我不知道我要去哪里。我尝试了许多解决方案,但是没有用。例如,在 build 方法中从中删除,然后显示
local.ERROR:非法字符串偏移量'address'{“ exception”:“ [对象] (ErrorException(code:0):非法的字符串偏移量'address'位于 C:\ xampp \ htdocs \ shopvel_ \ vendor \ laravel \ framework \ src \ Illuminate \ Mail \ Mailable.php:318)
编辑1:这是我的电子邮件视图
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Mail</title>
</head>
<body>
{{ $msg }}
</body>
</html>
编辑2:当我在constructor
方法中传递两个变量时,它像
Mail::to($request['to'])->send(new SendMail($request['from'], $request()->all()));
在构造方法中传递变量是否有限制?
(我不这么认为,因为构造函数可以接受任意数量的变量)
答案 0 :(得分:2)
构造函数中的$ from参数与Mailable类中的$ from公共属性冲突(并覆盖)。
public function __construct($from, $sub, $msg)
将其更改为类似的内容...
public function __construct($fromAddress, $sub, $msg)
它将正常工作