Идет по другому маршруту
Route::group(['middleware' => 'auth'], function(){
Route::get('/employees', [App\Http\Controllers\AngajatiController::class, 'show'])->name('employees');
Route::get('/show-form', [App\Http\Controllers\AngajatiController::class, 'show_form'])->name('show-form');
Route::post('/show-form', [App\Http\Controllers\AngajatiController::class, 'add_employee'])->name('add-employee');
Route::post('/delete-employee', [App\Http\Controllers\AngajatiController::class, 'delete_employee'])->name('delete-employee');
Route::get('/{slug}', [App\Http\Controllers\AngajatiController::class, 'see_employee'])->name('see-employee');
Route::put('/{slug}', [App\Http\Controllers\AngajatiController::class, 'update_employee'])->name('update-employee');
Route::post('/search-employee', [App\Http\Controllers\SearchController::class, 'search_employee'])->name('search-employee');
});
Route::get('/generate-pdf', [App\Http\Controllers\GeneratePDF::class, 'show_pdf'])->name('generate-pdf');
Это generatepdf.php
public function show_pdf(Request $request){
return view('tAngajati.genereaza-pdf');
}
У меня есть таблица сотрудников, где у меня есть кнопка «Просмотр» рядом с кнопкой «Создать PDF». Когда я нажимаю кнопку «Просмотр», он переходит на маршрут SLUG в (see-employees.blade.php). Когда я нажимаю «Создать PDF», у меня есть отдельный контроллер и отдельная функция (я вернул вид tAngajati.genereaza-pdf), но проблема в том, что он не идет к genereaza-pdf.blade.php, он идет к see-employees.blade.php и выдает ошибку, что я не определил некоторые значения (по данным сотрудника).
У вас будет такая же проблема с маршрутом search-employee, потому что search-employee также может соответствовать {slug}
Используйте маршруты REST и забудьте об этих проблемах с маршрутами. Удалить /employees/{id}; ПОЛУЧИТЬ /сотрудников/{id}; СТАВИТЬ, ПАТЧАТЬ для одних и тех же маршрутов. POST /employees означает создать новый
Спасибо вам, ребята. задача решена. я только что сделал другие маршруты, как сказал @N69S.






Вам следует изменить способ структурирования маршрутов, чтобы они соответствовали более стандартизированному подходу. Это предотвратит повторные неприятности, так как это распространенная проблема.
Дело в том, что у вас есть:
Route::get('/{slug}', [App\Http\Controllers\AngajatiController::class, 'see_employee'])->name('see-employee');
и
Route::get('/generate-pdf', [App\Http\Controllers\GeneratePDF::class, 'show_pdf'])->name('generate-pdf');
И Laravel рассматривает «генерировать-pdf» как еще один слаг и поэтому перенаправляет его на указанный вами маршрут.
Быстрым и грязным решением было бы изменить способ определения вашего маршрута generate-pdf, например:
Route::get('/pdf/generate', [App\Http\Controllers\GeneratePDF::class, 'show_pdf'])->name('generate-pdf');
Поскольку он будет иметь два сегмента (pdf и генерировать), в отличие от других маршрутов, он будет работать нормально. Но я бы порекомендовал вам изменить структуру всех ваших маршрутов, как указано здесь, например, чтобы вы следовали общепринятым передовым методам.
поместите объявление маршрута
generate-pdfнад кратким. Или лучшим решением было бы изменить слаг наemployee/{slug}, поэтому маршруты, которые перехватываются этим маршрутом, должны иметь префиксemployee