2016-10-26 4 views
1

У меня есть небольшая проблема маршрутизации в Laravel 5.2. У меня есть страница результатов, которая показывает подробную информацию о персонале. Мне нужна кнопка, которая при включении создает страницу PDF. Передача переменных была проблемой, но я сейчас очень близок! Я расскажу о своем коде для разработки.Передача переменной от кнопки к контроллеру Laravel

страница результатов

<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 контроллер

public function GeneratePDFc(){ 

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

Таким образом, на странице результатов, я использую массив ($ id_array) обыскивать базы данных для соответствующих записей. Мне нужно передать эту переменную на контроллер GeneratePDFc, чтобы я мог передать это снова функции loadView!

Может кто-нибудь, пожалуйста, помогите мне? :-)

ответ

3

Когда вы используете get метод, вы можете сделать именно это:

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

Для других методов, которые вы можете использовать что-то вроде этого (это один для DELETE метода):

<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> 

Чтобы получить переменную, использовать что-то вроде этого:

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

Оке, у меня есть это. Но как я могу назвать переменную в контроллере? –

+0

@AnnaJeanine, для GET вам нужно создать маршрут с параметром, а затем передать его и уловить 'function ($ parameter)'. Когда вы используете формы, вы можете использовать для этого скрытый ввод (посмотрите обновленный код). –

+0

Благодарим вас за разъяснение вашего кода. Я все еще использую метод get, но «someVariable» в моем контроллере не определен. Знаете ли вы решение? –

0

Я не знаю, L aravel, но я думаю, когда в вашем action="" формы вы можете поместить свой маршрут с его параметрами нет?

Я нашел его здесь: https://laravel.com/docs/4.2/html#opening-a-form

и доступ к переменной в контроллере с помощью $request вар