2017-03-20 6 views
1

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!

+1

nicht ** ** global anwenden. Verwenden Sie $ output als Parameter oder als Eigenschaft des Objekts (** $ this-> output **) –

+0

Danke für den Tipp, ich habe den Code geändert; und die Ergebnisse sind immer noch die gleichen. –

+0

Hey :) Sie haben vergessen, Eigenschaft in der __construct Methode zu setzen: '$ this-> output = $ output' –

Antwort

0

Verwenden Sie nicht global. Verwenden Sie $ Ausgabe als Parameter oder als Eigenschaft des Objekts ($ this-> Ausgabe) Und in der __construct Methode hinzufügen $ this-> output = $ output