You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8为单条ID的show页添加PDF导出功能时路由未找到错误求解

问题解决步骤

错误原因

你当前报错是两个问题导致的:

  1. 自定义的each_print路由没有显式指定路由名称,Laravel不会自动给非资源路由加products.前缀的命名
  2. 路由没有定义{product}参数占位符,无法传递产品ID,也无法触发控制器的隐式模型绑定

修复步骤

  • 第一步:修改routes/web.php配置,注意自定义路由要放在资源路由的前面:
// 新增name方法指定路由名,新增{product}参数占位符
Route::get('products/each_print/{product}', [ProductController::class, 'each_print'])->name('products.each_print');
Route::resource('products', ProductController::class);
  • 第二步:修改ProductController的each_print方法,把产品数据传给PDF视图,否则视图无法读取对应ID的产品信息:
public function each_print(Product $product)
{
    // 把$product变量传递给视图
    $pdf = \PDF::loadView('products.each_print', compact('product'));
    return $pdf->stream('each_print.pdf');
}
  • 第三步:你已经修改的index.blade.php里的打印按钮代码无需调整,路由配置生效后即可正常访问。

内容的提问来源于stack exchange,提问作者bluetail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 10:12:01