Ich habe eine Mailable-Klasse in Laravel 5.3 erstellt, die die Ansicht aufruft. Ich muss jedoch einige Variablen von meinem Controller an die Mailable-Klasse übergeben und diese Werte dann in der Ansicht verwenden. Das ist mein Set-up:So senden Sie Daten vom Laravel-Controller an die Mailable-Klasse
Controller:
$mailData = array(
'userId' => $result['user_id'],
'action' => $result['user_action'],
'object' => $result['user_object'],
);
Mail::send(new Notification($mailData));
verschickbare:
class Notification extends Mailable
{
use Queueable, SerializesModels;
protected $mailData;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($mailData)
{
$this->$mailData = $mailData;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
// Array for Blade
$input = array(
'action' => $mailData['action'],
'object' => $mailData['object'],
);
return $this->view('emails.notification')
->with([
'inputs' => $this->input,
]);
}
}
Die oben gibt mir den Fehler:
ErrorException in Notification.php line 25:
Array to string conversion
auf die Bezug construct
Zeile in Klasse:
$this->$mailData = $mailData;
Was habe ich hier falsch gemacht? Wie übertrage ich Array-Werte korrekt von Controller
zu Mailable
und verwende dann with
, um sie an die View
weiterzugeben?
der Fehler 'Array String conversion' für diese Linie immer:' $ this-> maildata = $ Maildata; ' – Neel
Hallo Rimon, habe ich es Arbeiten. Ich hatte einen Tippfehler in meinem Code. Statt "$ this-> mailData = $ mailData;" hatte ich es als '$ this -> $ mailData = $ mailData;'. Zweitens war "geschützt" statt "öffentlich" kein Problem. Allerdings muss ich die Verweise auf $ this-> mailData ['xyz'] 'anstelle von' $ mailData ['xyz'] 'aktualisieren. Danke für Ihre Hilfe. Sehr geschätzt .. – Neel
Glücklich zu helfen :) –