簡體   English   中英

無法訪問對象laravel 5.3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM