我正在使用laravle 5.3 mailables发送电子邮件。我想通过方法传递数据进行查看。
我创建了一个可邮寄的 MytestMail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class MytestMail extends Mailable {
public $dataArray;
use Queueable,
SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($dataArray) {
$this->dataArray= $dataArray;
//
}
/**
* Build the message.
*
* @return $this
*/
public function build() {
$address = 'test@gmail.com';
$name = 'asasa';
$subject = 'sasasasub';
return $this->view('emails.myTestMail')
->from($address, $name)
->cc($address, $name)
->bcc($address, $name)
->replyTo($address, $name)
->subject($subject)
->with([
'name' => $this->dataArray->name,
'password' => $this->dataArray->password,
'E_id' => $this->dataArray->E_id,
'email' => $this->dataArray->email,
]);
;
}
}
现在我收到错误
尝试获取非对象的属性
当我print_r $ this-&gt; dataArray 时,我得到了一个包含值的数组
Array ( [name] => sdsdsds [E_id] => 0123 [password] => sdsd [username]
=> sdsdsdsds@sgxcxcxmail.com )
请帮帮我...为什么我收到此错误消息?
答案 0 :(得分:3)
当你print_r它告诉你th
的数据类型时,所以当访问变量->Array<- ( [name] => sdsdsds [E_id] => 0123 [password] => sdsd [username]=> sdsdsdsds@sgxcxcxmail.com )
时,一定要像$dataArray
或{{1}这样的数组访问它等等......
答案 1 :(得分:2)
问题在这里
'name' => $this->dataArray->name,
您尝试从name
访问$this-dataArray
,即使name
是数组的索引,因此它不是对象的属性。错误消息是不言自明的。
尝试获取非对象的属性
你应该做的是
'name' => $this->dataArray['name'],
与您提问中提到的其他数组元素相同。