【问题标题】:Missing required parameter for route although parameter is passed in view尽管在视图中传递了参数,但缺少路由所需的参数
【发布时间】:2020-04-15 17:41:15
【问题描述】:

我收到这样的错误:

缺少 [Route: resumenes.show] [URI: 简历/{resume}]。 (看法: .../resources/views/resumenes/index.blade.php)

控制器

public function index()
{
    $resumenes = Resumene::orderBy('title','ASC')->paginate();
    return view('resumenes.index', compact('resumenes') );
}

public function show(Resumene $resumen)
{

    return view('resumenes.show', [
        'resumen'=> $resumen
    ]);
}

路线

 Route::get('/resumenes/{resumen}', 'ResumeneController@show')->name('resumenes.show');

INDEX.BLADE.PHP 在此视图中显示错误

 @extends('layout')
 @section('title')
 Mis Resumenes
 @endsection

@section('content')
<h1>Mis Resumenes</h1>

@include('partials.sessions')

<a href="{{ route('resumenes.create') }}">Nuevo Resumen</a>
<ul>
    @forelse($resumenes as $resumen)
    <h2>{{ $resumen->title }}</h2>
            **<li><a href="{{ route('resumenes.show', $resumen) }}" ><button>Ir</button></a>** 
            <br> Creado hace {{ $resumen->created_at->diffForHumans() }} </li>
            <hr>
    @empty
            <li>No hay proyectos existentes</li>
    @endforelse
{{ $resumenes->links() }}
</ul>
 @endsection

错误应该是

   <li><a href="{{ route('resumenes.show', $resumen) }}" ><button>Ir</button></a>

【问题讨论】:

  • 将公开功能展示(Resumene $resumen)改为公开功能展示($resumen)

标签: php laravel laravel-blade laravel-6


【解决方案1】:

查看您提供的代码似乎一切正常。

你应该试试:

php artisan view:clear

确保不使用旧视图。

如果没有帮助,您应该运行:

php artisan route:list

确保该路由的 url 看起来像 /resumenes/{resumen},因为路由定义可能更复杂(使用路由分组),所以完整的 url 可能如下所示:/something/{something}/resumenes/{resumen}

【讨论】:

  • 嗨,Marcin Nabialek,我刚刚通过将简历参数转换为可选参数 {resumen} -> {resumen?} 解决了这个问题。这就是我找到的解决方案,感谢您的帮助!
  • @Juan。你的建议很有帮助。非常感谢!我已经发布了一篇关于我在 Laravel 6.3 中遇到的这个问题的帖子。
猜你喜欢
  • 2017-02-27
  • 2021-09-02
  • 2021-09-19
  • 2019-01-09
  • 2020-08-07
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多