2017-03-20 3 views
1

J'ai un site Web qui crypte, et décrypte les données qui sont entrées dans une zone de texte, quand je clique sur "crypter" l'application enverra un Email contenant le crypté message. Le problème: l'email contient tout, SAUF le message crypté réel. Je m'appelle mailtrap pour voir les emails envoyés. est ici le code:Laravel 5.4: Les variables deviennent NULL lorsqu'elles sont envoyées par E-mail

le contrôleur:

public function encrypt(Request $request){ 
    $output = encrypt($request->name); 
    Mail::to('[email protected]')->send(new EncryptionSent($output)); 

    return view('decrypt', ['output' => $output,]); 
} 

Les 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]); 
} 

}

La vue:

@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 utilisé dd() pour découvrez le problème, mais $ output renvoie toujours le message crypté dans le contrôleur et les mailables.

merci pour la lecture, en espérant que quelqu'un puisse vous aider!

+1

Ne pas utiliser ** global **. Utilisez $ output comme paramètre ou comme propriété de l'objet (** $ this-> output **) –

+0

Merci pour le conseil, j'ai changé le code; et les résultats sont toujours les mêmes. –

+0

Hey :) Vous avez oublié de définir la propriété dans la méthode __construct: '$ this-> output = $ output' –

Répondre

0

N'utilisez pas global. Utilisez la sortie $ en tant que paramètre ou propriété de l'objet ($ this-> Sortie) Et dans la méthode __construct ajouter $ this-> output = sortie $