Estoy usando laravel 5.3 mailables para enviar correos electrónicos. Quiero pasar datos para ver a través del método.

He creado un MytestMail.php disponible

<?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,


                    ]);
        ;
    }

}

Ahora me sale un error

Tratar de obtener la propiedad de no-objeto

Cuando imprimo_r $ this-> dataArray obtuve una matriz con valores

Array ( [name] => sdsdsds [E_id] => 0123 [password] => sdsd [username]
=> sdsdsdsds@sgxcxcxmail.com )

Por favor, ayúdame ... ¿Por qué recibo este mensaje de error?

5
Shanu k k 6 ene. 2017 a las 12:47

2 respuestas

La mejor respuesta

Cuando imprime_r le indica el tipo de datos que es ->Array<- ( [name] => sdsdsds [E_id] => 0123 [password] => sdsd [username]=> sdsdsdsds@sgxcxcxmail.com ), así que cuando acceda a la variable $dataArray asegúrese de acceder a ella como una matriz como $this->dataArray['name'] o $this->dataArray['password'] etc. ..

3
Kenziiee Flavius 6 ene. 2017 a las 09:55

El problema está aquí.

'name' => $this->dataArray->name,

Está intentando acceder a name desde $this-dataArray a pesar de que name es un índice de la matriz, por lo tanto, no es una propiedad de un objeto. El mensaje de error se explica por sí mismo.

Tratar de obtener la propiedad de no-objeto

Lo que debes hacer en su lugar es

'name' => $this->dataArray['name'],

Lo mismo ocurre con otros elementos de matriz mencionados en su pregunta.

2
Gayan 6 ene. 2017 a las 10:00