2016-10-26 3 views
1

Ich habe ein kleines Routing-Problem in Laravel 5.2. Ich habe eine Ergebnisseite, auf der detaillierte Informationen zum Personal angezeigt werden. Ich möchte einen Button, der bei Aktivierung eine PDF-Seite erzeugt. Das Übergeben der Variablen war ein Problem, aber ich bin jetzt sehr nah dran! Ich werde meinen Code zur Verfügung stellen.Variable von Schaltfläche zu Controller übertragen Laravel

Ergebnisseite

<form action="generatePDFpage" method="get"> 
     <button type="submit" class="btn btn-default">Generate PDF!</button> 
</form> 

routes.php

Route::get('/dashboard/result/generatePDFpage', '[email protected]'); 

GeneratePDFc Controller

public function GeneratePDFc(){ 

     $id_array_implode = "HALLO";  
     $pdf= PDF::loadView('GeneratePDF', ["test"=>$id_array_implode])->setPaper('a4', 'landscape');  
     return $pdf->stream('invoice.pdf'); 
    } 

Also, auf der Ergebnisseite ich ein Array ($ id_array) die suchen bin mit Datenbank für die übereinstimmenden Datensätze. Ich muss diese Variable an den GeneratePDFc-Controller übergeben, damit ich das wieder an die loadView-Funktion übergeben kann!

Könnte mir bitte jemand helfen? :-)

Antwort

3

Wenn Sie get Methode verwenden, können Sie tun nur das:

<a href="{{ route('route.name', $parameter) }}"> 
    <button type="submit" class="btn btn-default">Generate PDF!</button> 
</a> 

Für andere Methoden, die Sie so etwas wie dieses (dieses ist für DELETE-Methode) verwenden können:

<form method="POST" action="{{ route('route.name', $parameter) }}" accept-charset="UTF-8"> 
    <input name="_method" type="hidden" value="DELETE"> 
    {{ csrf_field() }} 

    <button type="submit" class="btn btn-sm btn-default">Generate PDF!</button> 
<input type="hidden" value="someVariable" /> 
</form> 

Um Variable zu bekommen, so etwas wie folgt verwenden:

public function generatePDF(Request $request) 
{ 
    $someVariable = $request->someVariable; 
+0

Oke, ich habe diese. Aber wie rufe ich die Variable im Controller auf? –

+0

@AnnaJeanine, für GET müssen Sie eine Route mit einem Parameter erstellen und dann übergeben und fangen mit 'function ($ parameter)'. Wenn Sie Formulare verwenden, können Sie dafür "versteckte Eingabe" verwenden (siehe aktualisierten Code). –

+0

Vielen Dank für die Erläuterung Ihres Codes. Ich benutze immer noch die Methode get, aber die 'someVariable' in meinem Controller ist undefiniert. Kennst du eine Lösung? –

Verwandte Themen