[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] 所需的参数。
[Route: bill] [URI: bill/id] 缺少必需的参数