【问题标题】:Laravel 9 - Missing required parameter for [Route: trial.show] [URI: evaluation/{evaluation}/trial/{trial}] [Missing parameter: trial]Laravel 9 - 缺少 [Route: trial.show] [URI: evaluation/{evaluation}/trial/{trial}] [缺少参数:trial] 所需的参数
【发布时间】:2022-11-24 03:15:52
【问题描述】:

我有一个 evaluation 模型,它有很多 trials。我可以通过我的试验创建试验和查询并将它们输出到我的evaluation.show视图。我的问题是当我想创建指向我的trial.edittrial.show 路由的链接时,我不断收到错误Missing required parameter for [Route: trial.show] [URI: evaluation/{evaluation}/trial/{trial}] [Missing parameter: trial]。我知道我遗漏了一些明显的东西,但我已经耗尽了我的大脑输出。

网站.php

...
Route::get('/evaluation/{evaluation}/trial/create', App\Http\Livewire\Trial\Create::class)->name('trial.create');
Route::get('/evaluation/{evaluation}/trial/{trial}/edit', App\Http\Livewire\Trial\Edit::class)->name('trial.edit');
Route::get('/evaluation/{evaluation}/trial/{trial}', App\Http\Livewire\Trial\Show::class)->name('trial.show');
...

livewire/评估/show.blade.php

    ...
@foreach($trials as $trial)
    <a href="{{route('trial.show', $trial->id)}}" class="block hover:bg-gray-50">
@endforeach
    ...

Livewire/Evaluation/Show.php

...
public function mount(Evaluation $evaluation, Trial $trial) {
    $this->evaluation = $evaluation;
    $this->trial = $trial;
}

public function render()
{
    $trials = Trial::where('evaluation_id', $this->evaluation->id)->get();

    return view('livewire.evaluation.show', compact('trials'));
}

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您的路由有两个参数({evaluation}{trial}),您只在{{route('trial.show', $trial-&gt;id)}} 中传递一个参数。

    添加评估 ID(假设 $evaluation-&gt;id 持有该 ID):

    <a href="{{route('trial.show', [$evaluation->id, $trial->id])}}" class="block hover:bg-gray-50">
    

    【讨论】:

    • 该消息的 [Missing parameter: trial] 部分可能有点误导,因为它实际上是缺少的 evaluation 参数。路由参数有顺序,因此您添加的第一个参数已被识别为 evaluation 参数。
    • 如果需要,您可以使用 Default Valuesevaluation 设置默认参数,但从未使用过
    【解决方案2】:

    我发现我缺少模型中的 ID,并且由于该 ID 为空,因此导致了此错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-22
      • 2021-06-09
      • 1970-01-01
      • 2022-11-04
      • 2021-11-03
      • 2021-08-17
      相关资源
      最近更新 更多