【问题标题】:Missing required parameters for route resource show缺少路由资源显示所需的参数
【发布时间】:2021-02-04 14:56:46
【问题描述】:

我将两个参数传递给 letters.show 路由。一个是语言环境,另一个是 id。

缺少 [Route: letters.show] [URI: {language}/letters/{letter}] 的必需参数。 (查看:C:\xampp\htdocs\dstts\resources\views\inc\layout.blade.php)

当有所有必需的参数时显示此错误。

我的 web.php 文件

Route::group(['prefix' => '{language}'], function () {

Route::get('/', function () {
    return view('welcome');
})->name('welcome');



Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Route::resource('letters', 'LettersController')->middleware('auth');
});

字母控制器显示方法

public function show($lang, $id)
{
         

    $letter = Letter::find($id);
        
    return view('letters.show')->with('letter', $letter);
        }

我的 letters.index 页面,其中我放置了字母显示按钮

<a class="btn bg-green btn-block btn-xs waves-effect" href="{{ route('letters.show', [app()->getLocale(), $letter->id]) }}"></a>

当我点击浏览器地址栏中的显示按钮时,它会显示正确的地址:http://dstts.site/en/tasks/1

我在这里缺少什么?

【问题讨论】:

标签: php laravel localization


【解决方案1】:

一切正常,您的代码没有任何问题 尝试检查$letter-&gt;id 不是null 或者您可以通过备用$letter-&gt;id 与任何现有模型进行测试,如果它可以工作,错误将出现在$letter-&gt;id

【讨论】:

  • $letter->id 不为空。即使它为空,也不应该有任何问题。因为我之前看过一个空记录。在我将我的分支与另一个分支合并之前,所有这些路由都运行良好。不知道发生了什么。但是这个问题只发生在需要第二个参数的路由中。 letter.index 工作正常。
猜你喜欢
  • 2017-02-27
  • 2021-09-02
  • 1970-01-01
  • 2021-09-19
  • 2019-01-09
  • 2020-08-07
  • 2020-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多