[英]can't access object laravel 5.3
我正在使用laravle 5.3 mailables發送電子郵件。我想通過with方法傳遞數據以進行查看。
我創建了一個可郵寄的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-> dataArray我得到一個帶有值的數組
Array ( [name] => sdsdsds [E_id] => 0123 [password] => sdsd [username]
=> sdsdsdsds@sgxcxcxmail.com )
請幫助我...為什么我收到此錯誤消息?
當您使用print_r時,它會告訴您->Array<- ( [name] => sdsdsds [E_id] => 0123 [password] => sdsd [username]=> sdsdsdsds@sgxcxcxmail.com )
,因此在訪問時變量$dataArray
確保以數組形式訪問它,例如$this->dataArray['name']
或$this->dataArray['password']
等。
問題在這里
'name' => $this->dataArray->name,
您正在嘗試從$this-dataArray
訪問name
,即使name
是數組的索引也是如此,因此它不是對象的屬性。 錯誤消息是不言自明的。
試圖獲取非對象的屬性
您應該做的是
'name' => $this->dataArray['name'],
問題中提到的其他數組元素也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.