Laravel передает идентификатор параметра в функцию контроллера - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть страница с данными / информацией и кнопкой загрузки, которая преобразует мою страницу в pdf. Теперь кнопка загрузки - моя проблема с тем, как я могу это сделать.

URL моей текущей страницы.

Route::get('/inventory/{id}', function ($id) {
    $inventory = Inventory::find($id);
    return view('layouts._inventory-template', ['inventory' => $inventory])
});

Моя кнопка в представлении

<a href="{{ action('ClientController@viewPdf', ['id' => $request()->route('id')]) }}" class="button button-secondary"><span></span>PDF</a>

Функцияв ClientController

public function viewPdf($id)
{
    $inventory = Inventory::find($id);

    $pdf = PDF::loadView('layouts._inventory-template');
    return $pdf->download('inventory.pdf');
}

Вопрос: Как реализовать логику кнопки загрузки PDF на странице просмотра?

Ответы [ 4 ]

0 голосов
/ 08 ноября 2019

Просто добавьте свойство загрузки в тег

<a href="{{ action('ClientController@viewPdf', ['id' => $request()->route('id')]) }}" class="button button-secondary" download><span></span>PDF</a>

0 голосов
/ 08 ноября 2019

Я бы предложил:

Route::get('/inventory/{id}', 'ClientController@downloadPdf')->name('download-pdf');

ClientController

public function downloadPdf()
{
  $inventory = Inventory::find($id);
  $pdf = PDF::loadView('layouts._inventory-template', $inventory);
  return $pdf->download('inventory.pdf');
}

Кнопка

<a href="{{ route('download-pdf', Auth::user()->id) }}" title="">Download<i class="la la-download"></i></a>

Примечание: изменить Auth :: user () ->id в кнопке, если вы хотите что-то еще

0 голосов
/ 08 ноября 2019

Это можно сделать разными способами, но вы можете использовать метод маршрута и обновить маршрут с именем ...

Обновить маршрут с именем:

    Route::get('/inventory/{id}', function ($id) {
    $inventory = Inventory::find($id);
    return view('layouts._inventory-template', ['inventory' => $inventory])
})->name('inventory_show');

Теперь используйте метод маршрута:

<a href="{{ route('inventory_show', ['id' => $request()->route('id')]) }}" class="button button-secondary"><span></span>PDF</a>
0 голосов
/ 08 ноября 2019

В вашем роутере:

Route::get('/viewPdf/{id}', 'ClientController@viewPdf');

Вы можете просто позвонить по вашему маршруту в href:

<a href="/viewPDF/{{ $id }}" class="button button-secondary"><span></span>PDF</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...