首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel将多个参数传递给控制器

Laravel将多个参数传递给控制器
EN

Stack Overflow用户
提问于 2020-08-11 02:38:07
回答 2查看 850关注 0票数 0

我想删除一个图像并返回到用户页面,所以我尝试将2个参数传递给我的控制器(我的userid和image_id)。

但我知道这个错误

函数App\Http\Controllers\McuFormDocumentController::destroy(),1传递的

参数太少,而预期的参数正是2

我在刀片上的按钮代码

代码语言:javascript
复制
<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>

我的控制器

代码语言:javascript
复制
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!');
}

我的路线

代码语言:javascript
复制
    Route::resource('mcu-resume', 'McuResumeController');
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-20 06:34:53

我的解决方案是在href中传递参数时使用级联。

代码语言:javascript
复制
 href="{{ route('mcu-form-document.destroy', $id .'|'.$mcu_form_document['id']) }}"

并在我的控制器中使用preg_split来分割它

代码语言:javascript
复制
    public function destroy($params)
    {
    $str_arr = preg_split("/\|/", $params);
    $id = $str_arr[0];
    $img_id = $str_arr[1];
    // dd($id . "-" . $img_id);
    }

希望这将对others..thx的所有帮助有所帮助

票数 1
EN

Stack Overflow用户

发布于 2020-08-11 05:04:44

或者,还可以向控制器中添加一个请求参数,使您能够传递多个数据并获得所需的值,如下所示:

代码语言:javascript
复制
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');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63350703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档