【问题标题】:Laravel 8 GET request UrlGenerationException MissingLaravel 8 GET 请求 UrlGenerationException 缺失
【发布时间】:2021-08-24 01:37:13
【问题描述】:

我在 Laravel 8 中为 GET 请求发送 id 时出错。

路线代码:

Route::get('reports_gen',[BaseController::class, 'reports_gen'])->name('reports_gen'); 
Route::get('downloadCSV/{id}', [BaseController::class, 'downloadCSV'])->name('downloadCSV');

刀片代码:

<li><a href="{{route('downloadCSV',$id)}}" >G1</a></li>

控制器代码:

public function downloadCSV(Request $req,$id)
{
    echo $id;die();
}
public function reports_gen(Request $req)
{
    //dd($req);
    $id=1;
    return view("reports_generate",compact('id'));
}

错误信息是:

Illuminate\Routing\Exceptions\UrlGenerationException 缺少必需 [Route: downloadCSV] [URI: downloadCSV/{id}] [Missing] 的参数 参数:id]。 (看法: C:\xampp\htdocs\lrvl\studentprojectapp\resources\views\reports_generate.blade.php)

我需要将 $id 参数传递给 downloadCSV 控制器,并且还想知道是否有更好的方法来执行此操作。任何帮助将不胜感激。

【问题讨论】:

  • 您的路线未指向您正在显示的控制器方法。也许[BaseController::class, 'downloadCSV'] 应该是[BaseController::class, 'reports_gen']

标签: laravel routes get laravel-blade


【解决方案1】:

错误消息意味着您必须将参数作为关联数组传递,这是 Laravel 中的“经典错误”。

https://laravel.com/docs/8.x/routing#named-routes

在你的刀片文件中

<a href="{{ route('downloadCSV',['id' => $id]) }}">G1</a>

然后正如 @porloscerrosΨ 在评论中所写,您必须更正您的控制器功能。

【讨论】:

    【解决方案2】:

    这个错误实际上是由于一个非常简单的错误造成的。

    代码一切正常。 我的刀片中也有以下几行。

    <li><a href="{{route('downloadCSV',$id)}}">G1</a></li>               
    <li><form action="{{route('downloadCSV')}}">G2</form></li>
    <li><form action="{{route('downloadCSV')}}">G3</form></li> 
    

    G3 的路线 G2 发生错误。因为我正在测试 G1,所以我忘记更改它们了。

    【讨论】:

      猜你喜欢
      • 2021-03-11
      • 2021-08-02
      • 1970-01-01
      • 2021-01-25
      • 2018-12-22
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多