Ich habe eine Website, die Daten verschlüsselt und entschlüsselt, die in eine Textbox eingegeben wird, wenn ich auf "Verschlüsseln" klicke, sendet die Anwendung eine E-Mail mit dem verschlüsselten Botschaft.Laravel 5.4: Variablen werden NULL, wenn per E-Mail gesendet
das Problem: Die E-Mail enthält alles, mit Ausnahme der eigentlichen verschlüsselten Nachricht.
Ich verwende mailtrap, um die gesendeten E-Mails anzuzeigen. hier ist der Code:
der Controller:
public function encrypt(Request $request){
$output = encrypt($request->name);
Mail::to('[email protected]')->send(new EncryptionSent($output));
return view('decrypt', ['output' => $output,]);
}
Die Mailables:
class EncryptionSent extends Mailable{
use Queueable, SerializesModels;
public $output;
public function __construct($output){
//
}
public function build(){
return $this->from('[email protected]')->view('decrypt', ['output' => $this->output]);
}
}
The View:
@extends ('home')
@section('content')
<div style = "width: 250px;border: 1px solid #000000;word-wrap:break-word">
<!-- The Decrypted code is located here -->
{{ $output }}
</div>
<form action="{{ url('/decrypt/'.$output)}}" method="POST" class="form- horizontal">
{{ csrf_field() }}
<br/><br/>
<button type="submit" class="btn btn-default">
<i class="fa fa-btn fa-plus"></i> Decrypt!
</button>
</form>
@endsection
i dd() verwendet zu finde das Problem heraus, aber $ output gibt immer die verschlüsselte Nachricht im Controller und in den Mails zurück.
Danke fürs Lesen, in der Hoffnung, dass jemand helfen kann!
nicht ** ** global anwenden. Verwenden Sie $ output als Parameter oder als Eigenschaft des Objekts (** $ this-> output **) –
Danke für den Tipp, ich habe den Code geändert; und die Ergebnisse sind immer noch die gleichen. –
Hey :) Sie haben vergessen, Eigenschaft in der __construct Methode zu setzen: '$ this-> output = $ output' –