【发布时间】:2020-11-30 16:16:33
【问题描述】:
我想删除一张图片并返回到用户页面,所以我尝试将 2 个参数传递给我的控制器(我的用户 ID 和 image_id)。
但我得到了这个错误
函数 App\Http\Controllers\McuFormDocumentController::destroy() 的参数太少,通过了 1 个,预期正好有 2 个
我在刀片中的按钮代码
<button id="delete" class="btn btn-danger btn-sm" data-title="{{ $mcu_form_document['title'] }}"
style="color: #fff; font-size: 1.2em;"
href="{{ route('mcu-form-document.destroy', ['id'=>$id ,'img'=>$mcu_form_document['id']]) }}">
Delete <i class="la la-trash" style="color: #fff; font-size: 1.2em;"></i>
</button>
<form action="{{ route('mcu-form-document.destroy', ['id'=>$id ,'img'=>$mcu_form_document['id']]) }}" method="post" id="deleteForm">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<input type="submit" value="" style="display:none;">
</form>
我的控制器
public function destroy($id,$img_id)
{
$mcu_form_document = McuFormDocument::find($img_id);
$mcu_form_document->delete();
return redirect()
->route('mcu.resume.list', ['id' => $id])
->with('success', 'Document has been successfully deleted!');
}
我的路线
Route::resource('mcu-resume', 'McuResumeController');
【问题讨论】:
-
检查您的路线
php artisan route:list资源不会使用超过 1 个参数创建任何路线 -
是的,你能告诉我更多该怎么做吗?
-
你必须自己定义一个带有 2 个参数的路由……但是为什么你需要传递你的 'user_id' 呢?
-
我需要 user_id 路由回该用户编辑页面
-
您要么需要将其创建为嵌套资源,要么创建您自己的带有 2 个参数的删除路由
标签: laravel controller parameter-passing