【发布时间】:2020-04-26 20:34:03
【问题描述】:
我想生成带有两个参数的 URL。在我的web.php 中,我创建了一条路线:
Route::get('/pojedinacni-turnir/{godina}/kolo/{kolo}', [
'uses' => 'Frontend\PojedinacniTurnirController@show',
'as' => 'pojedinacni.turnir',
]);
我的两个参数是godina 和kolo。
在我的控制器中,我创建了带有两个参数的 show 函数:来自 godina 的 id 和来自 kolo 的 id。 这是来自我的控制器的代码:
<?php
namespace App\Http\Controllers\Frontend;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Sezona;
use App\TurnirPojedinacni;
class PojedinacniTurnirController extends Controller
{
public function show($id_sezona, $id_kolo)
{
$sezone = Sezona::orderBy('godina', 'desc')->get();
$sezona = Sezona::findOrFail($id_sezona);
$kola = TurnirPojedinacni::where('sezona_id', $id_sezona)->orderBy('id', 'asc')->get();
$kolo = TurnirPojedinacni::findOrFail($id_kolo);
return view('frontend.pojedinacni_turnir', compact('sezone', 'sezona', 'kola', 'kolo'))->render();
}
}
当我尝试检查我的 URL 时,我收到以下消息:
缺少 [Route: pojedinacni.turnir] [URI: pojedinacni-turnir/{godina}/kolo/{kolo}] 的必需参数。 (查看:C:\WebSites\TkPazin\TK_Pazin\resources\views\frontend\pojedinacni_turnir.blade.php)
我不明白错误,因为我尝试使用两个参数的 URL。我用这样的 id 创建了 URL:
{{ route('pojedinacni.turnir', ['godina' => 1, 'kolo' => 1]) }}
即使这样我也会收到相同的错误消息。
更新:添加刀片文件
@extends('layouts.frontend')
@section('title', 'TK Pazin | Pojedinačni turnir')
@section('css')
<link href="/css/style_pojedinacni_turniri.css" rel="stylesheet"/>
@endsection
@section('content')
<!-- Page Content -->
<div class="container">
<!-- Page Heading -->
<h1 class="my-4" style="text-align:center; color: #ba3631;">Pojedinačni turniri {{ $sezona->godina }}</h1>
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
@foreach($sezone as $sezona)
<li class="breadcrumb-item"><a href="{{ route('pojedinacni.turnir', $sezona->id) }}">{{ $sezona->godina }}</a></li>
@endforeach
</ol>
</nav>
<div class="row mb-5">
<div class="col-12 col-md-2 mb-5">
<div class="list-group">
@foreach($kola as $kolo)
<button type="button" class="list-group-item list-group-item-action">{{ $kolo->naziv }}</button>
@endforeach
</div>
</div>
</div>
</div>
<!-- /.container -->
@endsection
【问题讨论】:
-
什么是 {godina},你从哪里得到的?
-
{godina} 是 Sezona 模型的 ID。
-
就这样吧。 Godina 是我表年代的 ID。 Kolo 是我桌上锦标赛的 ID。在这两张桌子之间,我们有一对多的关系(一年可以有很多比赛)。我想创建一个视图,我可以在其中查看特定年份的锦标赛。这就是为什么我需要获取两个参数的原因。一份用于年度,一份用于锦标赛。
-
如消息所述,问题出在您的 Blade 模板中,而不是您的控制器。如果您的数据库中存在或不存在 ID 无关紧要 - 如果它们不存在,您会看到不同的错误,而不是这个错误。在那个 Blade 文件的某个地方,你正在生成这个没有参数的路由。仔细检查那个代码,然后给我们看。
-
在我的帖子末尾是我如何生成 url 的示例。出于测试的目的,我将其设为静态,稍后将设为动态