[Route:..] 缺少所需参数是不是有解决方案?

Posted

技术标签:

【中文标题】[Route:..] 缺少所需参数是不是有解决方案?【英文标题】:Is there a solution for Missing required parameters for [Route:....?[Route:..] 缺少所需参数是否有解决方案? 【发布时间】:2020-04-19 22:04:57 【问题描述】:

有人可以帮我解决这个错误吗?我已经挣扎了好几天了。

缺少 [Route: helper.update] [URI: helper/id] 所需的参数。 (查看:D:\Training\LaravelProjects\helps\resources\views\helper\edit.blade.php

我已按照文档进行操作,但我仍然无法找出问题所在。这是我的代码。

Web.php

Route::group(['prefix' => 'helper'], function ()
 Route::get('/create', [
    'uses' => 'HelperController@create',
    'as' => 'helper.create'
 ]);

 Route::get('/id/edit', [
    'uses' => 'HelperController@edit',
    'as' => 'helper.edit'
 ]);

 Route::get('/id', [
    'uses' => 'HelperController@show',
    'as' => 'helper.show'
 ]);

 Route::post('/', [
    'uses' => 'HelperController@store',
    'as' => 'helper.store'
 ]);

 Route::put('/id', [
    'uses' => 'HelperController@update',
    'as' => 'helper.update'
 ]);

 Route::delete('/id', [
    'uses' => 'HelperController@destroy',
    'as' => 'helper.destroy'
 ]);
);

HelperController.php

public function edit($id)

    $helper = Helper::find($id);
    return view('helper.edit', compact('helper'));

index.blade.php

<tbody>
                @foreach($helpers as $helper)
                <tr>
                    <td> $helper->name </td>
                    <td> $helper->email </td>
                    <td> $helper->telephone </td>
                    <td> $helper->city </td>
                    <td> $helper->district </td>
                    <td> $helper->province </td>
                    <td> $helper->category </td>
                    <td>
                        <a href=" route('helper.edit', $helper->id) " class="edit">
                            <i class="fas fa-pencil-alt" title="Edit" style="font-size: 16px"></i>
                        </a>
                        <a href="#deleteEmployeeModal" class="delete" data-toggle="modal" data-widget="">
                            <i class="fas fa-trash" title="Delete" style="font-size: 16px"></i>
                        </a>
                    </td>
                </tr>
                @endforeach

我只想在单击编辑链接后打开 edit.blade.php 文件。删除部分不完整,请忽略。 此外,id 作为参数传递,但仍然说它丢失了。

【问题讨论】:

错误出现在edit.blade.php 视图中而不是index.blade.php 中,它与update 路由有关,而不是edit 路由 问题出在您的编辑页面上。不在索引页中。分享编辑页面表单操作。 【参考方案1】:

我的项目遇到了类似的问题,这里的问题是您的 ID。那些缺少的参数是 Laravel 无法获取的 ID,因为它有一个空值。

在 PHPMyAdmin 中,

编辑您的 SQL 文件并删除负责存储触发错误的特定操作信息的表 ID。然后在表格的开头添加一列。将名称设置为 id,将长度/值设置为 11,将类型设置为整数 (INT),然后单击 NULL 旁边的框并将值设置为 PRIMARY。等待弹出窗口,然后单击确定。之后,勾选自动增量下的框。保存您的表格,现在刷新并注意每列现在都有一个具有不同值的 id。并且不为空。返回 Ur 应用程序并重新提交您的请求,它应该可以正常工作。

【讨论】:

您的答案中不应包含您的电子邮件和网站。如果您愿意,可以将其保留为您的个人资料...【参考方案2】:

resources\views\helper\edit.blade.php 中确保将助手ID 传递给更新发布/放置html 表单

 route('helper.update', $helper->id) 

希望对你有帮助

【讨论】:

是的,已经完成了。但我想要的只是通过传入一个参数来打开edit.blade.php,这就是我正在努力解决的问题。 我不明白为什么必须在那里传递 id,因为我没有提交要更新的表单。 因为route函数试图编译一个正确的URL并读取你在routes/web.php中的内容,当它失败时会抛出一个错误

以上是关于[Route:..] 缺少所需参数是不是有解决方案?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 缺少 [Route: destroy] 所需的参数。

缺少必需的参数(laravel 8.8.0)

[Route: ] - Laravel 7 缺少必需的参数

[Route: bill] [URI: bill/id] 缺少必需的参数

SocketIO(app)缺少所需的位置参数“模式”[关闭]

缺少路由所需的参数(Laravel 8)