Laravel 将多个参数传递给控制器
Laravel passing multiple parameter to controller
我想删除图片并return返回用户页面,所以我尝试将 2 个参数传递给我的控制器(我的用户 ID 和 image_id)。
但是我得到这个错误
Too few arguments to function App\Http\Controllers\McuFormDocumentController::destroy(), 1 passed and exactly 2 expected
我的按钮代码在blade
<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');
或者您也可以在您的控制器中添加一个请求参数,使您能够传递多个数据并获取所需的值,如下所示:
use Illuminate\Http\Request;
public function destroy(Request $request)
{
$id = $request->get('id');
$image_id = $request->get('img');
$mcu_form_document = McuFormDocument::find($image_id);
$mcu_form_document->delete();
return redirect()
->route('mcu.resume.list', ['id' => $id])
->with('success', 'Document has been successfully deleted!');
}
//web.php
Route::delete('mcu-resume-destroy', 'McuResumeController@destroy');
我的解决方案是在传递 href 中的参数时使用串联
href="{{ route('mcu-form-document.destroy', $id .'|'.$mcu_form_document['id']) }}"
并在我的控制器中将其与 preg_split 分开
public function destroy($params)
{
$str_arr = preg_split("/\|/", $params);
$id = $str_arr[0];
$img_id = $str_arr[1];
// dd($id . "-" . $img_id);
}
希望这会对其他人有所帮助..thx 所有的帮助
我想删除图片并return返回用户页面,所以我尝试将 2 个参数传递给我的控制器(我的用户 ID 和 image_id)。
但是我得到这个错误
Too few arguments to function App\Http\Controllers\McuFormDocumentController::destroy(), 1 passed and exactly 2 expected
我的按钮代码在blade
<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');
或者您也可以在您的控制器中添加一个请求参数,使您能够传递多个数据并获取所需的值,如下所示:
use Illuminate\Http\Request;
public function destroy(Request $request)
{
$id = $request->get('id');
$image_id = $request->get('img');
$mcu_form_document = McuFormDocument::find($image_id);
$mcu_form_document->delete();
return redirect()
->route('mcu.resume.list', ['id' => $id])
->with('success', 'Document has been successfully deleted!');
}
//web.php
Route::delete('mcu-resume-destroy', 'McuResumeController@destroy');
我的解决方案是在传递 href 中的参数时使用串联
href="{{ route('mcu-form-document.destroy', $id .'|'.$mcu_form_document['id']) }}"
并在我的控制器中将其与 preg_split 分开
public function destroy($params)
{
$str_arr = preg_split("/\|/", $params);
$id = $str_arr[0];
$img_id = $str_arr[1];
// dd($id . "-" . $img_id);
}
希望这会对其他人有所帮助..thx 所有的帮助